【问题标题】:Making a RESTful call to Amazon Web service using Power-shell使用 Powershell 对 Amazon Web 服务进行 RESTful 调用
【发布时间】:2016-11-28 15:49:41
【问题描述】:

我正在尝试从亚马逊网络服务收集数据。每次我拨打电话都会收到 403 Forbidden。

这是我的代码的样子(链接混乱):

Invoke-RestMethod -Uri "https://hosted-data-work.s3.amazonaws.com/20161121T220310.324/dw_split/73610000000000001/assignment_fact/part00101.gzAWSAccessKeyId=ASIAJVX3JXfd5dfdfRKJNGM74Q&Expires=1479839499&Signature=J4JdyX53AwH6wExVmoVAtkweCEI%3D&resp222onse-contentdisposition=inline%3B%20filename%3D%22assignment_fact-00000-095582fd.gz%22%3B&x-amz-security-token=bluh" -Method Get

上面的链接是一个下载文件。我只想以最简单的方式获取数据。我还需要在通话中添加什么?我对aws一无所知!

【问题讨论】:

  • 看看这个:aws.amazon.com/powershell
  • 您要完成什么具体任务?尝试以更多面向任务的方式提出问题,也许我们可以帮助您。正如@AnthonyNeace 指出的那样,您可能希望从使用 AWS PowerShell 模块开始,而不是直接调用 REST API。
  • 链接是文件下载。我只想以最简单的方式下载它

标签: rest powershell amazon-web-services


【解决方案1】:

您是如何生成该 URL 的?它看起来像一个预签名的 URL,这意味着访问对象的授权将根据预签名时使用的凭据授予。有几个可能的原因可能会导致您收到未经授权的回复:

  1. 用于生成预签名 URL 的凭据实际上没有读取对象的权限。仔细检查您的 IAM 政策和/或 ACL,以了解存储桶和生成 URL 的 IAM 用户。
  2. 在您生成预签名 URL 和您尝试使用它的时间之间,签名被截断/损坏。尝试在生成 url 时记录它,并在使用它时再次记录它并进行比较以确保它们完全匹配。
  3. 预签名 URL 在指定的有效期后过期,该有效期不得超过 1 周。确保在需要时生成新的 URL 并适当设置过期时间。

其中任何一个都可能导致您看到的结果。

【讨论】:

    【解决方案2】:

    我被误导并在这个问题上采取了错误的方法。我不知道我可以简单地将文件下载到我的电脑上。我虽然必须将它从一个桶转移到另一个桶,然后再转移到我的电脑上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-04
      • 1970-01-01
      • 2014-10-20
      • 1970-01-01
      相关资源
      最近更新 更多