問題タブ [aws-sdk-js]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
251 参照

amazon-web-services - AWS JS SDK S3::Bucket#upload が予期しない Access-Control-Request-Method を使用する理由

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: POSTAccess-Control-Request-Method: PUT

なぜこれが起こるのか誰にも分かりますか?これは SDK のバグですか? ドキュメントの見落とし?ドキュメント*はPUTが発行されることを暗示しているので、私は2つが矛盾していると主張します.

*このメソッドのドキュメントから:

Bucket — (文字列) PUT 操作が開始されたバケットの名前。

Key — (文字列) PUT 操作が開始されたオブジェクト キー。