バックエンド・API・データ · 中級

ファイルとオブジェクトストレージ

一行でいうと: ファイルはデータベースにもサーバーのディスクにも属さない——署名済みアドレスを持つオブジェクトストレージに属する。

サーバーでない理由

ローカルディスクのファイルは複数インスタンス、バックアップ、デプロイメントを壊す。オブジェクトストレージでは耐久性、配信ネットワークからの直接アクセス、ライフサイクルポリシーを得る。

正しいフロー

サーバーが短命の署名済みアドレスを発行;クライアントが直接アップロード;サーバーが通知を受け取りレコードを更新する。負荷が少なく、コストが少なく、ユーザーの待ち時間が少ない。

ダウンロードで:同じ原則。有効期限付きの署名済みアドレス、漏洩したリンクが永遠でないように。

サーバーで確認すること

拡張子ではなく内容によるファイルタイプ、サイズ制限、ユーザーが他の人にアップロードするときの悪意あるコンテンツスキャン。そしてファイル名——ユーザーが付けた名前をシステムのパスとして保存しない。

さらに深く

メディアのライフサイクルポリシーを設定する:何が削除され、いつ、どのように。ストレージは静かに成長する項目であり、ポリシーなしには単に成長する。