ファイルアップロード
ルール
- ストレージへの直接アップロードには署名付きURLを使用 — サーバーを経由しない
- 5MBを超えるファイルはマルチパートアップロード — チャンクに分割し並列アップロード
- クライアント側バリデーション: ファイルタイプ、ファイルサイズ制限 — サーバー側でも再度検証
- 画像最適化: アップロード時にリサイズ(最大2048px)、WebP変換、EXIF除去
- 進捗追跡:
XMLHttpRequestまたはReadableStreamを使用したfetchでアップロード進捗を表示 - ストレージ: S3、R2(Cloudflare)、またはSupabase Storage — 署名付きURLパターンは共通
- サーバー側ファイルタイプ検証: ファイル拡張子だけでなくマジックバイトもチェック
- 高セキュリティコンテキスト向け: ユーザーアップロードのウイルススキャン