首页 > 解决方案 > AWS s3 - “下载”和“对象 URL”之间的区别

问题描述

尽我所能阅读,我找不到答案。我已经设置了一个具有 GetObject 权限的存储桶和用户。在 AWS 控制台中,我可以成功使用下载和打开链接(下面的绿色箭头),这似乎表明权限设置正确。但是,当单击对象 URL 链接(下面的红色箭头)时,我收到拒绝访问 XML 错误。

对象 URL 的用途是什么?它和下载/打开按钮有什么区别?另外,为什么所有者字段为空白?我将配置保留为默认设置,“应该”将上传者作为所有者,不是吗?

问题

标签: amazon-web-servicesamazon-s3

解决方案


默认情况下,所有存储桶和对象都是私有的,无法从 Internet 访问。要使您的私有对象无需 IAM 凭证即可从 Internet 访问,您必须创建S3 预签名 url。这正是打开/下载链接的作用——它们生成S3 预签名 url供您使用。因此,当您单击它们时,AWS 将生成S3 预签名 url,并且浏览器将使用该 url 请求对象。

单击对象 URL 不起作用,因为当浏览器针对该对象向 AWS 发出请求时,它不会使用 IAM 凭证对请求进行签名。仅当存储桶或对象允许匿名访问时,对象 URL 才有效。在这种情况下,不需要 IAM 凭证。这对于从 S3 提供静态网页非常有用。


推荐阅读