質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

4524閲覧

aws CORSポリシーによってブロックされましたと、エラーが出てデータがS3上にアップロードされない。

fuyukixxx

総合スコア26

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Amazon S3

Amazon S3 (Simple Storage Service)とはアマゾン・ウェブ・サービスが提供するオンラインストレージサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2021/04/08 10:07

AWS初心者です。下記のサイトを参考にしながら設定をしたのですがうまくアップロードされません。cors設定が原因のような気がしますが。。すみませんがご助力の方宜しくお願いします。

https://www.selfree.co.jp/2015/06/18/%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%83%AC%E3%82%B9%E3%81%A7javascript-%E3%81%A0%E3%81%91%E3%81%A7%E7%94%BB%E5%83%8F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95

エラー内容
Access to XMLHttpRequest at 'https://foliojs.s3.amazonaws.com/file1617874791820audio/mpeg' from origin 'http://localhost' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

PUT https://foliojs.s3.amazonaws.com/file1617874791820audio/mpeg net::ERR_FAILED

javascript

1コード 2 <script src="https://sdk.amazonaws.com/js/aws-sdk-2.881.0.min.js"></script> 3 4var s3_client = function() { 5 AWS.config.region = "us-east-1"; 6 AWS.config.credentials = new AWS.CognitoIdentityCredentials({ 7 IdentityPoolId: "us-east-1:bc" //仮設定 8 }); 9 AWS.config.credentials.get(function(err) { 10 if (!err) { 11 console.log("Cognito Identify Id: " + AWS.config.credentials.identityId); 12 } 13 }); 14 return new AWS.S3({ 15 params: { 16 Bucket: "foliojs" 17 } 18 }); 19 }; 20 21 22 var file = sliceData 23 var timestamp = new Date().getTime(); 24 var filename = "file" + timestamp + "audio/mpeg"; 25 s3_client().putObject({ 26 Key: filename, 27 ContentType: 'audio/mpeg', 28 Body: file, 29 ACL: "public-read" 30 }, 31 function(err, data) { 32 // if failed, alert 33 if (data !== null) { 34 alert("アップロード成功!"); 35 } else { 36 alert("アップロード失敗."); 37 } 38 });

cors

1コード 2[ 3 { 4 "AllowedHeaders": [ 5 "*" 6 ], 7 "AllowedMethods": [ 8 "PUT", 9 "POST", 10 "DELETE" 11 ], 12 "AllowedOrigins": [ 13 "http://www.example1.com" 14 ], 15 "ExposeHeaders": [] 16 }, 17 { 18 "AllowedHeaders": [ 19 "*" 20 ], 21 "AllowedMethods": [ 22 "PUT", 23 "POST", 24 "DELETE" 25 ], 26 "AllowedOrigins": [ 27 "http://www.example2.com" 28 ], 29 "ExposeHeaders": [] 30 }, 31 { 32 "AllowedHeaders": [], 33 "AllowedMethods": [ 34 "GET" 35 ], 36 "AllowedOrigins": [ 37 "*" 38 ], 39 "ExposeHeaders": [] 40 } 41]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ログから、アップロード元のWebページが動作している(アップロード画面を表示している)URLはhttp://localhost/xxxかと思います。

S3のCORS設定で、

json

1 "AllowedOrigins": [ 2 "http://www.example1.com" 3 ],

としていますが、

json

1 "AllowedOrigins": [ 2 "http://localhost" 3 ],

に変更すると、Originが一致するのでCORSアクセスが可能となります。

CORSアクセス時はアクセス元がOriginヘッダを送信し、アクセス先がAccess-Control-Allow-Origin(や他のAccess-Control-Allow-XXX)を返します。
それぞれが、それぞれのヘッダをみてCORSアクセスが成り立つかどうかが決まるイメージです。

投稿2021/04/08 13:24

yskszk63

総合スコア161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fuyukixxx

2021/04/09 09:00

ありがとうございます。解決しました。機会があればまた宜しくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問