☆UPLOAD/DOWNLOAD/DELETEの方法ってザックリこのパターン
- UPLOAD
- 署名付きURL経由でのクライアントからのアップロード
- サーバサイドからのアップロード
- DOWNLOAD
- 署名付きURL経由でのクライアントからのダウンロード
- サーバサイドからのダウンロード
- DELETE
- サーバサイドからのDELETE要求
★署名付きURLとは?
有効期限付きのURLを発行して、そのURL経由でクライアントとS3でお話してもらおうという仕組み。
クライアントとS3で直接お話してもらうとサーバ負荷とならないメリットがある。
【注意点】
ダウンロードの署名付きURLについては、対象がテキストファイル等であるとWebブラウザはダウンロードでなくブラウザ表示してしまうので、レスポンスヘッダに"Content-Disposition"を付けてファイル名をアタッチして回避する必要がある。
実はダウンロード用の署名付きURLを発行する際に、S3からのレスポンスヘッダに"Content-Disposition"を設定するためのパラメータ"ResponseContentDisposition"が存在する。
docs.aws.amazon.com
S3に触れなかったら"Content-Disposition"とか知らなかったよ…。
☆本題の存在チェック(doesObjectExist)
UPLOAD/DELETEのAPIって、最終的にちゃんとUPLOADされたのかDELETEされたのかAPIの返却値からだと判別できないみたい何ですよね。
なので存在チェックが必要になるのですが、調べてみるとやっぱりそういうAPIも存在していましたよ。
docs.aws.amazon.com
という報告エントリーでした。