如何复制带有预签名 URL 的对象?

Zac*_*she 8 ruby amazon-s3 amazon-web-services

我正在使用一项服务,该服务将我需要的数据放在 S3 上,并为我提供要下载的预签名 URL 列表 (http://.s3.amazonaws.com/? AWSAccessKeyID=...& Signature=...& Expires=.. .)。
我想将这些文件复制到我的 S3 存储桶中,而无需下载并再次上传。

我正在使用 Ruby SDK(但如果它有效的话我愿意尝试其他东西......)并且无法编写这样的东西。

我能够使用我的凭据(access_key 和 Secret)初始化 S3 对象,从而授予我对存储桶的访问权限access_key_id但是如何传递“源端”signatureexpires参数?

为了使问题变得更简单 - 我什至无法使用预先签名的参数对对象执行 GET 请求。(不是使用常规 HTTP,我想通过 SDK API 来完成)。

我发现了很多关于如何创建预签名 URL 的示例,但没有关于如何使用已经给定的参数进行身份验证的示例(显然我没有secret_key数据提供者的参数)。

谢谢!

Mic*_*bot 1

您无法使用签名的 url 来执行此操作,但如前所述,如果您在 EC2 内的适当区域中针对相关存储桶获取并上传,则基本上不会产生额外费用。

另外值得注意的是,两个存储桶不必位于同一帐户中,但用于发出请求的 aws 密钥必须有权放置目标对象并获取源对象。可以跨帐户授予权限......尽管在许多情况下,这不太可能被授予。

http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectCOPY.html