2017-12-21 1 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

이 [link] (https://gist.github.com/joaoffcosta/5729398)가 도움이 될 수 있습니다. – vrn53593

답변

0

철자가 잘못되었습니다.

그러나이 페이지를 보는 사람은 누구나 html 페이지에 있다고 가정하면 자격 증명을 훔칠 수 있습니다! secretKey를 어디 에나 두는 것은 정말 나쁜 생각입니다. 비밀 키로 서버에 '미리 서명 된 키'를 생성하는 것이 좋습니다. 교차 게시를 허용하려면 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

관련 문제