[SFDC][AWS]VisualforceからS3に直接ファイルアップロードする(署名バージョン4)

メモ〜

SalesforceのVisualforce画面からS3にファイルをアップロードする必要が生じました。
Apexで扱えるファイルサイズに上限があったりして面倒なのですが、AWSはHTML FORMに認証情報(を基に計算した署名)を埋め込んでファイルと一緒にPOSTしてファイルアップロードする方法を提供してくれているのでこの方法を利用しようと思います。前のエントリと同じく、署名は最新のバージョン4の方法で行います。

Browser-Based Upload using HTTP POST (Using AWS Signature Version 4)

※ファイル送信自体はVisualforce(上に書いたJS)からですが、署名の計算はJavascriptRemotingを経由してサーバ側のApexで行います。
※HTML5ありきで実装したので楽なもんでした。

■Visualforce

■Apex

あとS3のバケットにCORSの設定が必要です。
今回はHerokuのアドオンであるところのbucketeerを利用していたため、以下の情報を参考に設定しました。
https://devcenter.heroku.com/articles/bucketeer#updating-cors-settings


コメントを残す