amazon-web-services - AWS s3 - “下载”和“对象 URL”之间的区别
问题描述
尽我所能阅读,我找不到答案。我已经设置了一个具有 GetObject 权限的存储桶和用户。在 AWS 控制台中,我可以成功使用下载和打开链接(下面的绿色箭头),这似乎表明权限设置正确。但是,当单击对象 URL 链接(下面的红色箭头)时,我收到拒绝访问 XML 错误。
对象 URL 的用途是什么?它和下载/打开按钮有什么区别?另外,为什么所有者字段为空白?我将配置保留为默认设置,“应该”将上传者作为所有者,不是吗?
解决方案
默认情况下,所有存储桶和对象都是私有的,无法从 Internet 访问。要使您的私有对象无需 IAM 凭证即可从 Internet 访问,您必须创建S3 预签名 url。这正是打开/下载链接的作用——它们生成S3 预签名 url供您使用。因此,当您单击它们时,AWS 将生成S3 预签名 url,并且浏览器将使用该 url 请求对象。
单击对象 URL 不起作用,因为当浏览器针对该对象向 AWS 发出请求时,它不会使用 IAM 凭证对请求进行签名。仅当存储桶或对象允许匿名访问时,对象 URL 才有效。在这种情况下,不需要 IAM 凭证。这对于从 S3 提供静态网页非常有用。
推荐阅读
- meteor - 如何将服务器端文件插入图像、fs.files 和 fs.chunks -GridFS (Ostrio/files)
- java - Spring @ComponentScan 排除/包含过滤器
- php - 在 PHP 中查找多维数组中最常见的值
- java - 迁移到 Spring Boot 2.0 后应用程序上下文侦听器不起作用
- html - 当从显示中显示元素时,Div 不会自动调整高度
- angular - 别名组件
- excel - excel条件格式vlookup不包含值
- unicode - 表情符号作为 MariaDB 主键中的问号
- vim - Vim vim-airline 拆分视图,更改颜色
- unix - 如何使用 SED/AWK 将文本文件中的第一行与最后一行交换