我已将图像上传到Amazon S3存储.但是如何通过url访问此图像?我已将文件夹和文件设为公共但如果尝试通过URL访问它仍然会收到AccessDenied错误https://s3.amazonaws.com/bucket/path/image.png
ako*_*ian 26
这是一个较老的问题,但对于遇到此问题的任何人,一旦我公开了该文件,我就可以访问我的图像https://mybucket.s3.amazonaws.com/myfolder/afile.jpg
Ren*_*cha 11
就我而言,我已私下上传图片,因此无法访问。我做了以下代码
const AWS = require('aws-sdk')
const myBucket = 'BUCKET_NAME'
const myKey = 'FILE_NAME.JPG'
const signedUrlExpireSeconds = 60 * 1
const s3 = new AWS.S3({
accessKeyId: "ACCESS_KEY_ID",
signatureVersion: 'v4',
region: 'S3_REGION',
secretAccessKey: "ACCESS_SECRET"
});
const url = s3.getSignedUrl('getObject', {
Bucket: myBucket,
Key: myKey,
Expires: signedUrlExpireSeconds
})
console.log(url)
Run Code Online (Sandbox Code Playgroud)
小智 10
最简单的方法之一是制定存储桶策略。
{
"Version": "2012-10-17",
"Statement": [{
"Sid": "MakeItPublic",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::yourbucketname.com/*"
}]
}
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以使用以下方式访问您的图像:
https://s3.amazonaws.com/bucketname/foldername/imagename.jpg
Run Code Online (Sandbox Code Playgroud)
或者如果没有文件夹,你可以这样做:
https://s3.amazonaws.com/bucketname/imagename.jpg
Run Code Online (Sandbox Code Playgroud)
upvote如果有帮助.它符合2017年5月30日的现有AWS.
小智 5
为了便于将来参考,如果您想访问 Amazon S3 中的文件,则 URL 需要类似于:
bucketname.s3.region.amazonaws.com/foldername/image.png
Example: my-awesome-bucket.s3.eu-central-1.amazonaws.com/media/img/dog.png
不要忘记将对象设置为公共。
在 S3 内,如果单击对象,您将看到一个名为:对象 URL 的字段。这是该对象的网址。
| 归档时间: |
|
| 查看次数: |
55424 次 |
| 最近记录: |