- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我想创建一个所谓的“预签名”URL,用于将特定对象 (PUT) 上传到 Amazon S3 存储桶。
到目前为止一切顺利。我正在使用 python 库 boto创建一个包含所有必要内容(过期、签名等)的 URL。网址如下所示:
https://<bucketname>.s3.amazonaws.com/<key>?Signature=<sig>&Expires=<expires>&AWSAccessKeyId=<my key id>&x-amz-acl=public-read
注意最后一个参数。
至少,据我所知,这限制了使用此 URL 的任何人将对象上传到特定存储桶中的特定键,并且还限制了将在对象上设置为“公共(public)读取”的固定 ACL。
虽然我最后的陈述是完全不正确的。
事实证明,如果您使用此 URL,则可以使用 x-amz-acl header(与查询字符串参数相对)执行以下操作具有相同的名称,您必须设置才能成功进行签名检查):
看来是这样
x-amz-acl=public-read
在查询字符串中,您可以设置 x-amz-acl
标题为 authenticated-read
而不是公开可读的对象,而是获取一个只能由经过身份验证的用户读取的对象。x-amz-acl QS 参数和同名 header 之间的真实 关系是什么?有没有办法限制对象的权限,即通过 PUT
上传请求所谓的“预签名”URL?
最佳答案
据我了解(我在这里可能是错的), header x-amz-acl
优先于查询字符串参数——它们的作用相同。在签名检查期间仅考虑查询字符串参数的原因仅仅是因为 header 不是策略签名检查的一部分。
This page可能对你有帮助;在创建直接上传到 S3 的表单时,它对我帮助很大。
关于python - 预签名 URL 和 x-amz-acl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13895775/
我正在尝试将PUT请求发送到amazonS3预签名URL。即使我只有一个PUT请求,我的请求似乎也被调用了两次。第一个请求返回200 OK,第二个请求返回400 Bad Request。 这是我的代码
在我的表格中,它显示了我的政策和 x-amz-credential、x-amz-algorithm、x-amz-signature、我的存储桶等... data-form-data = "{"key"
前言:我的 Fineuploader 支持的上传网站在 2013 年底运行,使用 S3 作为存储。随后亚马逊多处将授权机制升级至V4。所以我决定升级我的fineuploader。 我的问题是,当 co
尝试将文件上传到 S3 时出现以下错误: S3StorageError: AccessDeniedAWS authentication requires a valid Date or x-amz-
我正在通过 PHP 将照片上传到 Amazon S3 存储桶。到目前为止一切正常。 我的问题是关于 x-amz-meta。我会使用 x-amz-meta 键/值对来存储数据,例如上传者的用户 ID 及
我想创建一个所谓的“预签名”URL,用于将特定对象 (PUT) 上传到 Amazon S3 存储桶。 到目前为止一切顺利。我正在使用 python 库 boto创建一个包含所有必要内容(过期、签名等)
我正在尝试使用Go Lambda函数将图像写入S3存储桶,客户端将通过 public URL访问该图像。当我在环境中使用我的AWS凭证在本地执行该函数时,可以在/image.jpg结尾的s3 URL上
我有一个用于将文件上传到 aws s3 的 Node 程序,我需要在请求 header 中指定 x-amz-tagging。我尝试了一些方法,但它不起作用! function buildRequest
const AWS = require('aws-sdk'); export function main (event, context, callback) { const s3 = new A
我正在 AWS AMI 中运行我的应用程序。 AMI 通过云形成模板启动,该模板使用 sts:AssumeRole 创建 AWS::IAM::Role 角色。 EC2 实例启动后,我使用 boto3.
例如,我在 S3 上有一个包含一些元数据的文件x-amz-meta-description="一些描述"当我将文件上传到 S3 时,此元数据已包含在内。如果我使用 Amazon 控制台检查元数据,元数
我正在尝试将我的项目部署到亚马逊 AWS Elastic Beanstalk(使用 eclipse),但出现以下错误: com.amazonaws.services.s3.model.AmazonS3
我正在尝试使用 cURL 通过传递 AWS 请求的所需 header 来进行简单的图像上传,但出现以下错误... AccessDeniedAWS authentication requires a v
尝试使用带有可选元数据参数的 Node.js AWS sdk s3Client.upload 时: const AWS = require('aws-sdk') const s3Client = ne
我的应用程序在 ios 6 中运行良好..它从亚马逊网络服务器 s3 上传和下载数据..但是当我将我的 ios 6 升级到 ios 7 时...我收到警告消息“无法连接到服务器”日志窗口中的错误 “E
是 X-Amz-Expires必需的 header /参数?官方文档不一致,在some examples中使用, 而不是在 others . 如果不需要,签名请求的默认过期值是多少?它是否等于 X-A
我有一个不完全正统的 CF->S3 设置。这里的相关组件是: Cloudfront 分发与 origin s3.ap-southeast-2.amazonaws.com 添加 S3 授权(版本 2)查
我想对 S3 网页使用重定向。 AWS Configuring a Web Page Redirect文档说要设置 x-amz-website-redirect-location属性,但这似乎不可设置
首先,基本问题 - 是否有一种直接的方法可以将 HTTP header X-Amz-Invocation-Type:'Event' 添加到具有集成类型 Lambda 函数的现有 API 网关 POST
我正在尝试使用 go sdk 为我的 S3 存储桶中的文件创建预签名 URL。 当我从命令行运行程序时,我得到了不包含 X-Amz-Security-Token 的预签名 URL。 但如果我使用来自
我是一名优秀的程序员,十分优秀!