バックエンド・API・データ · 中級
ファイルとオブジェクトストレージ
一行でいうと: ファイルはデータベースにもサーバーのディスクにも属さない——署名済みアドレスを持つオブジェクトストレージに属する。
サーバーでない理由
ローカルディスクのファイルは複数インスタンス、バックアップ、デプロイメントを壊す。オブジェクトストレージでは耐久性、配信ネットワークからの直接アクセス、ライフサイクルポリシーを得る。
正しいフロー
サーバーが短命の署名済みアドレスを発行;クライアントが直接アップロード;サーバーが通知を受け取りレコードを更新する。負荷が少なく、コストが少なく、ユーザーの待ち時間が少ない。
ダウンロードで:同じ原則。有効期限付きの署名済みアドレス、漏洩したリンクが永遠でないように。
サーバーで確認すること
拡張子ではなく内容によるファイルタイプ、サイズ制限、ユーザーが他の人にアップロードするときの悪意あるコンテンツスキャン。そしてファイル名——ユーザーが付けた名前をシステムのパスとして保存しない。
さらに深く
メディアのライフサイクルポリシーを設定する:何が削除され、いつ、どのように。ストレージは静かに成長する項目であり、ポリシーなしには単に成長する。