IAM 역할을 사용하여 EC2 인스턴스에서 S3에 액세스하고 있습니다. 하지만 제 신청서에서는 파일을 다운로드하기위한 서명 된 URL을 만듭니다. 그러나 사용자가 파일을 다운로드하려고 시도하면 액세스가 거부되었으므로 오류가 표시됩니다.서명 된 URL을 통해 다운로드 할 때 액세스가 거부되었습니다.
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
//key=file path
var params = {Bucket: bucket, Key: prefix+'/'+key, Expires: 240}
var url = s3.getSignedUrl('getObject', params)
console.log(req.cookies.s, 'got', url) // expires in 60 seconds
res.redirect(url)
'AWS S3 Bucket Policy'와 결합하여 s3 객체를 공개하십시오. 참고 : http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html –
몇 가지 코드를 보여줄 수 있습니까? 서명 된 URL이이를 처리하는 올바른 방법입니다. 내가 원하는 바를 알지 못한다면 대중에게 양동이를 열지 말 것을 강력히 권합니다. – stdunbar
업로드 된 파일을 공개로 설정해야합니다. 그렇지 않으면 앱에 업로드 된 파일을 공개로 설정하는 데 몇 acl이 필요합니다. – Ayoub