0
我正在使用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