AWS S3 への CORS リクエスト (具体的には OPTIONS) が断続的に失敗し (~1/3 試行)、403 レスポンス コードと次のエラー メッセージが表示されるという奇妙な問題が発生しています。
Cross-Origin Request Blocked: 同一オリジン ポリシーにより、 https://s3.amazonaws.com/some-bucket/some-video.mp4?uploadsでのリモート リソースの読み取りが許可されません。(理由: CORS ヘッダー 'Access-Control-Allow-Origin' がありません)。
S3 CORS構成は、私が求めているユースケース (mp4 のアップロード) や他のアセットのアップロード (画像、CSS、JS など) をこの同じバケットに、同じ関数 (AWS -SDK の Bucket#upload) は問題なく動作します。
なぜこれが起こるのか誰にも分かりますか?SDK が予期しない Access-Control-Request-Method ヘッダーを使用しないようにすることはできますか?
更新:さらに掘り下げた後、 OPTIONS リクエストがdefault ではなくヘッダーで送信されることがあるために、これが発生しているという結論に達しました。CORS 構成で POST がホワイトリストに登録されていないため、これらの要求が失敗するようです。Access-Control-Request-Method: POST
Access-Control-Request-Method: PUT
なぜこれが起こるのか誰にも分かりますか?これは SDK のバグですか? ドキュメントの見落とし?ドキュメント*はPUTが発行されることを暗示しているので、私は2つが矛盾していると主張します.
*このメソッドのドキュメントから:
Bucket — (文字列) PUT 操作が開始されたバケットの名前。
Key — (文字列) PUT 操作が開始されたオブジェクト キー。