【问题标题】:Does generating a pre-signed URL to an S3 object using the AWS SDK cost anything?使用 AWS 开发工具包生成指向 S3 对象的预签名 URL 是否需要任何费用?
【发布时间】:2019-08-09 09:41:16
【问题描述】:

使用任何语言的 AWS 开发工具包,您可以为 PRIVATE S3 对象生成一个预签名的 URL,然后拥有该 URL 的任何人都可以使用它下载该对象。此处对此进行了解释:

https://docs.aws.amazon.com/AmazonS3/latest/dev/ShareObjectPreSignedURL.html

这是减少您自己的服务器负载的好方法。如果您的客户遵循重定向,您可以将实际下载工作传递给 S3。我的问题是,实际上生成该 URL 是否需要任何费用——我的意思是实际的金钱。我知道使用 URL 会产生 GET 请求费用,但实际生成 URL 呢?它是否等同于 S3 GET 请求(每 1000 个请求 0.0004 美元)或 PUT 请求(每 1000 个请求 0.005 美元),或者两者都或两者都不是或其他?我似乎找不到任何文档。如果您谈论的是数以千万计的请求,这一点很重要。

【问题讨论】:

  • 我们使用了很多预签名的 URL(不是数以百万计),而且我从未见过它们出现在我们的账单上。我们成为 AWS 客户已有 10 年了。

标签: amazon-web-services amazon-s3


【解决方案1】:

不,它不需要任何费用。生成预签名 URL 是纯粹的客户端操作。没有与此相关的 AWS 成本,也没有网络活动。您使用的 SDK 采用您当前的凭证、对象的存储桶和密钥、您选择的方法(例如 GET)、到期时间、可选的 HTTP 标头,以及计算和签署 URL,所有这些都在本地完成。

值得注意的是,您可以创建一个实际上不可用的预签名 URL。例如,如果您使用无效或过期的凭据。或者不存在的存储桶或对象键。在这两种情况下,您都可以创建一个预签名的 URL,但当 URL 最终呈现给 S3 时,访问将被拒绝。

您可以使用任何开发工具包或 AWSCLI 进行验证,方法是离线然后对 URL 进行预签名。以下是使用 AWSCLI 的示例:

aws s3 presign s3://situla/canes/fido.png

这将在您的计算机离线时成功,就像在线时一样。

【讨论】:

    猜你喜欢
    • 2018-12-01
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 2020-08-22
    • 1970-01-01
    相关资源
    最近更新 更多