コンテンツにスキップ

media テーブル

概要

項目 内容
テーブル名 media
説明 アップロードされたメディアファイル(画像・動画)と、AI が生成したサムネイル画像のメタデータを管理するテーブル。ファイル本体は S3 に保存し、その URL をこのテーブルで管理する
主な用途 メディアのアップロード・一覧取得・サムネイルの参照

カラム定義

カラム名 データ型 PK FK Unique Nullable デフォルト 備考
_id ObjectId ◯ ◯ DocumentDB自動採番
name string ◯ ユニークインデックスあり。S3 のオブジェクトキーにもなる
mime_type enum image: 画像 / video: 動画
s3_url string S3 に保存した実体の URL。サムネイルは CloudFront 経由の URL を保存する
size int バイト数
race_id string auto_racing:_id / bicycle_racing:_id / horse_racing:_id ◯ サムネイルなどレース由来のメディアのみ設定。汎用アップロードは null
created_at number
updated_at number 一覧取得のデフォルトは更新日時順にする
deleted_at number ◯

サムネイルの命名規則

thumbnail_generation Lambda が生成したサムネイルは、name の一意性を利用して upsert する (SQS 再配信などで再生成しても重複しない)。

対象 name S3 キー
記事 thumbnail_{race_id}.jpg {racing_type}/thumbnail/{race_id}.jpg
ブログ thumbnail_blog_{blog_id}.jpg {racing_type}/thumbnail/blog_{blog_id}.jpg

s3_url の扱い

経路 返す URL
メディア API(GET /v1/medias 等) 有効期限 1 時間の S3 署名付き URL を都度生成して返す
サムネイル(ブログ本文への埋め込み) CloudFront 経由の公開 URL(S3 バケットは非公開のため)