JAWS-UG宮崎第3回勉強会LT資料(Browser Uploads to S3 using HTML POST Forms)の記事で、S3にブラウザから直接アップロードする方法を紹介しましたが、そのときは、静的なHTMLフォームを前提として、Base64のpolicyやsignatureは別プログラム(Ruby)で作成していました。

今回は、そのHTMLフォームをPHPで生成し、有効期限やアップロードファイル名、リダイレクト先などを動的に変更できるようにしてみました。

コードは下記の通りです。



  
    
  
  
    
"/>

上記は、有効期限をHTMLフォームが作成されてから1分以内とし、アップロードファイル名やリダイレクトURLにid(ユーザーID等)が反映されるようにしています。

S3へのアップロードが成功すると、下記のURLにリダイレクトされ、リダイレクトURLに事前に付与しておいたパラメータ(id=00000000)も引き継がれていることがわかります。

http://www.suz-lab.com/index.html?id=00000000&bucket=www.suz-lab.com&key=00000000.txt&etag=%22…%22

さらに、HTMLフォームが生成された後、1分後にアップロードすると、下記のように、エラーになることが確認できました。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら