使用Power-shell对Amazon Web服务进行RESTful调用

时间:2016-11-28 15:49:42

标签: rest powershell amazon-web-services

我正在尝试从亚马逊网络服务中收集数据。每次拨打电话,我都会收到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一无所知!

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我被误导了,对这个问题采取了不好的做法。我不知道我可以直接将文件下载到我的电脑上。我虽然必须从一个桶转移到另一个桶,然后再转移到我的电脑上。