如何从S3 Bucket本地下载资产 - 通过Heroku

时间:2014-09-08 03:16:24

标签: ruby-on-rails ruby heroku amazon-web-services amazon-s3

我能找到的唯一工具,我分叉并尝试更新以包含S3_REGION,因为我得到了

$ The bucket you are attempting to access must be addressed using the specified endpoint

这些是我为访问存储桶而传递的所有变量。

opts[:s3_key] =======>  AKIAJHXXG*********YA
opts[:s3_secret] =======> uYXxuA*******************pCcXuT61DI7po2
opts[:s3_bucket] =======> *****
opts[:output_path] =======> /Users/myname/Desktop/projects/my_project/public/system
opts[:s3_region] =======> s3-us-west-2.amazonaws.com

https://github.com/rounders/heroku-s3assets一段时间没有更新,所以我假设我无法在Heroku工具或旧的aws-s3 gem中找到实际错误的位置。

任何人都有办法从AmazonS3向Heroku服务器提取生产资产吗?

2 个答案:

答案 0 :(得分:1)

我想我误解了你,所以现在编辑......也许可以尝试更简单的事情: http://priyankapathak.wordpress.com/2012/12/28/download-assets-from-amazon-s3-via-ruby/


我的搜索返回了此信息:

Bucket位于不同的区域

  

COPY命令中指定的Amazon S3存储桶必须相同   区域作为集群。如果您的Amazon S3存储桶和群集是   在不同地区,您将收到类似于的错误   以下内容:

ERROR: S3ServiceException:The bucket you are attempting to access must be addressed using the specified endpoint.
  

您可以通过以下方式在特定区域中创建Amazon S3存储桶   使用Amazon S3创建存储桶时选择区域   管理控制台,或在创建时指定端点   使用Amazon S3 API或CLI的存储桶。有关更多信息,请参阅   将文件上传到Amazon S3。

     

有关Amazon S3区域的详细信息,请参阅存储桶和区域   在Amazon Simple Storage Service开发人员指南中。

     

或者,您可以使用REGION选项指定区域   COPY命令。

http://docs.aws.amazon.com/redshift/latest/dg/s3serviceexception-error.html

答案 1 :(得分:0)

事实证明,宝石几乎没用。我已经进一步实现了将所有s3资产下载到公共/系统的目标 - 但仍然无法弄清楚如何使用aws s3文档将它们下载到我正确的本地rails目录 - http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/S3/S3Object.html

s3 = AWS::S3.new(access_key_id: 'AKIAJH*********PFYA', secret_access_key: 'uYXxuAMcnKODn***************uT61DI7po2', s3_endpoint: 's3-us-west-2.amazonaws.com')

s3.buckets['advlo'].objects.each do |obj| 
  puts obj.inspect
end

我可能只需要阅读更多unix命令并将它们单独或类似地scp。有什么想法吗?