2017-12-21 26 views
0

xmlhttprequestを使用してファイルをs3にアップロードするにはどうすればよいですか?私は次のようにしましたが、私はこのようなエラーを受けました。xmlhttprequestを使用してaws s3にファイルをアップロードする方法

'この操作では匿名アクセスは禁止されています'。ここで

私のコードです:

const xhr = new XMLHttpRequest(); 
xhr.open('PUT', "https://region.amazonaws.com/bucket-name/"); 
xhr.setRequestHeader('X-Amz-ACL', 'public-read'); 
xhr.setRequestHeader('Content-Type', 'image/png'); 
xhr.send({ 
    file: file, 
    type: 'image/png', 
    name: "myfile_9898_0", 
    acl: 'public-read', 
    AWSAccessKeyId: 'aws key', 
    AWSSecreKeyId: 'scret_key' 
}); 

は、このコードに何か問題はありますか?
誰も助けてくれますか?

+0

(POST、PUT)のCORSをバケットのallowmethodsとして設定しましたか? – vrn53593

+0

ええ、私はすでにCORS for(POST、PUT)を設定しました。 「匿名アクセスはこの操作では禁止されています」というような応答を受けています –

+0

この[リンク](https://gist.github.com/joaoffcosta/5729398)が役立つかもしれません。 – vrn53593

答えて

0

あなたはSecretKeyを間違って綴りました。

ただし、このページを表示している人は誰でも(HTMLページにあると仮定して)、あなたの資格情報を盗むことができます!秘密鍵をどこにでも置くことは本当に悪い考えです。あなたの秘密でサーバ上に「事前署名鍵」を生成する方が良いでしょう。クロスポストを可能にするには、サーバにCORSを設定する必要もあります。

+0

関連する質問これを行う方法:https://stackoverflow.com/questions/22531114/how-to-upload-to-aws-s3-directly-from-browser-using-a-pre-signed-url-instead- Δrq= 1 – court3nay

関連する問題