初心者の質問ですが、私は少しググったのですが、解決策を見つけることができません。
最初にサーバー経由ではなく、ユーザーがファイルを直接S3にアップロードできるようにしたい。そうすることで、実際にS3にアップロードする前に、ファイルのサイズ制限と許可されているタイプを確認できる方法はありますか?フラッシュではなくJavaScriptを使用することをお勧めします。
セキュリティの問題(バケットに巨大なファイルをアップロードする人)について話している場合、はい、ブラウザベースのS3へのアップロードでファイルサイズを制限できます。
「policy」変数の例を次に示します。「content-length-range」がキーポイントです。
"expiration": "'.date('Y-m-d\TG:i:s\Z', time()+10).'",
"conditions": [
{"bucket": "xxx"},
{"acl": "public-read"},
["starts-with","xxx",""],
{"success_action_redirect": "xxx"},
["starts-with", "$Content-Type", "image/jpeg"],
["content-length-range", 0, 10485760]
]
この場合、更新ファイルのサイズが10 MBを超えると、アップロードリクエストはAmazonによって拒否されます。
もちろん、アップロードプロセスを開始する前に、javascriptを使用してファイルサイズを確認し、そうである場合は警告を出す必要があります。
AWSは HTMLを作成する方法を説明するチュートリアルを作成しましたPOST Webサイトの訪問者が標準のWebブラウザーを使用してS3アカウントにファイルをアップロードできるフォーム 。これはS3 preを使用します-改ざんを防止するための署名付きURL。ファイルサイズによってアクセスを制限できます。