在S3上从外部私有桶流式下载到带有rails的公司存储桶

时间:2016-01-11 22:29:33

标签: ruby amazon-web-services amazon-s3

我们公司正在使用带有AWS SDK V1的Ruby 2.1.3在S3上上传文件。我需要将文件直接从私有外部存储桶流式传输到我们的个人存储桶(无需在本地实际下载)。我找不到关于这个主题的任何好文件。

我认为SDK提供的copy_from方法不允许从私有外部存储桶流式传输到我们的存储桶之一。

我们尝试使用open-uri来传输下载并将上传流式传输到s3,但文件总是先完全下载然后上传(它应该是这样吗?)。

欢迎任何帮助!

谢谢。

1 个答案:

答案 0 :(得分:0)

V1 SDK不允许您直接在存储桶之间进行传输。您可以执行open-uri所做的操作并下载文件,然后上传到新存储桶。

如果您想要一个仍然可以在Ruby中运行的解决方案,我建议您使用AWS CLI。您可以在代码中添加这样的行:

`aws s3 cp s3://frombucket/ s3://tobucket/`

反引号允许您在ruby脚本中执行系统命令。或者,您可以升级到V2 SDK并使用object.copy_to命令并在存储桶之间进行复制。希望这有帮助!