首页 文章

Amazon S3通过网址访问图片

提问于
浏览
18

我已将图像上传到Amazon S3存储 . 但是如何通过url访问此图像?我已将文件夹和文件设为公共但如果尝试通过URL访问它仍然会收到AccessDenied错误https://s3.amazonaws.com/bucket/path/image.png

8 回答

  • 6

    我遇到了同样的问题 . 我有问题图像网址中的间距 . 我这样做是为了让它工作:

    String imgUrl=prizes.get(position).getImagePreview().replaceAll("\\s","%20");
    

    现在将此网址传递给毕加索:

    Picasso.with(mContext)
                .load(imgUrl)
                .into(mImageView);
    
  • 3

    在控制台上,右键单击要访问的图像,然后单击“公开”;完成后,再次右键单击图像并单击“属性”,然后从“扩展”视图中复制“链接” .

  • 23

    最简单的方法之一是制定存储桶策略 .

    {"Version":"2012-10-17","Statement":[{_ 1146464:"MakeItPublic","Effect":"Allow","Principal":“_ ", "操作": " s3:GetObject ", "资源": " arn:aws:s3 ::: yourbucketname.com/”}]}

  • 3

    这是一个较老的问题,但对于遇到此问题的任何人,一旦我公开了该文件,我就可以访问我的图像https://mybucket.s3.amazonaws.com/myfolder/afile.jpg

  • 5

    您可以使用以下方式访问您的图像:

    https://s3.amazonaws.com/bucketname/foldername/imagename.jpg
    

    或者如果没有文件夹,你可以这样做:

    https://s3.amazonaws.com/bucketname/imagename.jpg
    

    upvote如果有帮助 . 它符合2017年5月30日的现有AWS .

  • 1

    看起来您现在只需右键单击存储桶中的任何文件夹,然后选择“公开”即可将该文件夹中的所有内容公开 . 它可能无法在桶级别本身工作 .

  • 0

    确保使用与上载和存储在S3上相同的大小写访问图像 . 例如,如果您上传了image_name . JPG ,您应该使用相同的名称,但不能使用image_name . jpg

  • 0

    我在寻找无法访问图像的类似问题的解决方案时遇到了这个问题 .

    事实证明,在访问时,文件名中包含 % 的图像必须将 % 符号URL编码为 %25 .

    photo%20of%20a%20banana%20-%2019%20june%202016.jpg 需要通过 photo%2520of%2520a%2520banana%2520-%252019%2520june%25202016.jpg 访问 .

    但是,编码完整路径的URL对我们不起作用,因为斜杠等会被编码,并且路径不起作用 . 在我们的特定情况下,只需在所有访问路径中用 %25 替换 % 就可以了 .

相关问题