【问题标题】:How to format a URL to get a file from Amazon S3?如何格式化 URL 以从 Amazon S3 获取文件?
【发布时间】:2011-12-17 12:30:44
【问题描述】:

我在弄清楚如何从 Amazon S3 访问文件时遇到了一些麻烦。假设文件所在的桶是BUCKET_NAME,文件是FILE_NAME,等等。我尝试了以下两个网址:

https://s3.amazonaws.com/BUCKET_NAME/FILE_NAME/
?Expires=EXPIRATION
&Signature=SIGNATURE
&SignatureVersion=2
&SignatureMethod=HmacSHA1
&AWSAccessKeyId=KEYID

但这给了我以下错误:

<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>

我也试过了:

https://s3.amazonaws.com/BUCKET_NAME/
?Key=FILE_NAME
&Expires=EXPIRATION
&Signature=SIGNATURE
&SignatureVersion=2
&SignatureMethod=HmacSHA1
&AWSAccessKeyId=KEYID

但这会返回一个网页,其中包含给定存储桶中所有文件的列表(包括FILE_NAME),而不是我想要的特定文件。我也尝试将Action=GetObject 也加入到 URL 中,但这似乎并没有改变任何东西。

找出哪个(如果有)是正确的方法以及我做错了什么会很有帮助。我已经在亚马逊的文档中挖掘了一段时间,但我似乎无法整理出来。

【问题讨论】:

标签: get amazon-s3


【解决方案1】:

它实际上更像是:

https://<bucket-name>.s3.amazonaws.com/<key>

here

【讨论】:

  • 感谢您的回复。我也试过你提到的方法,但结果相同。
  • @user1018928 是版本化存储桶吗?另外要考虑的是密钥是否被删除。
【解决方案2】:

文档here,我将以法兰克福地区为例。

有 2 种不同的 URL 样式:

但是这个网址不起作用:

消息很明确:The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.

我可能在谈论另一个问题,因为我没有收到 NoSuchKey 错误,但我怀疑随着时间的推移错误消息已经变得更加清晰。

【讨论】:

【解决方案3】:

也许不是 OP 所追求的,但对于那些搜索 URL 以简单地访问 S3 上的可读对象的人来说,更像是:

https://&lt;region&gt;.amazonaws.com/&lt;bucket-name&gt;/&lt;key&gt;

&lt;region&gt; 类似于 s3-ap-southeast-2

单击 S3 GUI 中的项目以获取存储桶的链接。

【讨论】:

  • 不推荐将存储桶名称放在路径中而不是域中。
【解决方案4】:

正如@stevebot 所说,这样做:

https://&lt;bucket-name&gt;.s3.amazonaws.com/&lt;key&gt;

我想补充的一件重要事情是,您要么必须让您的存储桶对象全部公开访问,要么您可以将自定义策略添加到您的存储桶策略。该自定义策略可能允许来自您的网络 IP 范围或其他凭据的流量。

【讨论】:

    【解决方案5】:

    请注意,如果您位于不同的 AWS 分区中,例如 US GovCloud 或中国,那么您的 URL 模式会略有不同。

    https://&lt;bucket-name&gt;.s3-&lt;region-name&gt;.amazonaws.com/&lt;key&gt; 为 GovCloud 工作。

    中国类似于https://&lt;bucket-name&gt;.s3-&lt;region-name&gt;.amazonaws.com.cn/&lt;key&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-14
      • 2014-02-03
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多