Ruby on rails 如何通过Heroku从S3 Bucket本地提取资产

Ruby on rails 如何通过Heroku从S3 Bucket本地提取资产,ruby-on-rails,ruby,heroku,amazon-web-services,amazon-s3,Ruby On Rails,Ruby,Heroku,Amazon Web Services,Amazon S3,我能找到的唯一工具是分叉并尝试更新以包括S3_区域,因为我得到了 $您试图访问的存储桶必须使用指定的端点进行寻址 这些都是我用来访问bucket的变量 opts[:s3_key] =======> AKIAJHXXG*********YA opts[:s3_secret] =======> uYXxuA*******************pCcXuT61DI7po2 opts[:s3_bucket] =======> ***** opts[:output_path] ===

我能找到的唯一工具是分叉并尝试更新以包括S3_区域,因为我得到了

$您试图访问的存储桶必须使用指定的端点进行寻址

这些都是我用来访问bucket的变量

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
已经有一段时间没有更新了,所以我假设我无法在Heroku工具或旧的aws-s3 gem中找到实际错误的位置


有没有人有办法从AmazonS3中将生产资产拉到Heroku服务器?

我想我误解了你的意思,所以现在编辑……也许可以尝试一些更简单的方法:


我的搜索返回了以下信息:

Bucket位于不同的区域 COPY命令中指定的amazons3存储桶必须位于同一个存储桶中 区域作为集群。如果您的AmazonS3存储桶和集群 在不同的地区,您将收到类似于的错误 以下:

您可以通过以下方式在特定区域创建AmazonS3 bucket 使用AmazonS3创建bucket时选择区域 管理控制台,或在创建 使用AmazonS3API或CLI的bucket。有关详细信息,请参阅 上传文件到AmazonS3

有关AmazonS3区域的更多信息,请参见bucket和regions 在《Amazon简单存储服务开发人员指南》中

或者,您可以使用带有的“区域”选项指定区域 复制命令


因此,事实证明,gem几乎毫无用处。我进一步实现了将所有s3资产下载到public/system的目标,但仍然不知道如何使用aws s3文档将它们下载到正确的本地rails目录中

我可能只需要阅读更多的unix命令,然后逐个地对它们进行scp或其他操作。有什么想法吗?

s3区域可能只需要区域部分,而不是整个主机名,例如“s3-us-west-2”(末尾没有.amazonaws.com)。我猜,在这里。
ERROR: S3ServiceException:The bucket you are attempting to access must be addressed using the specified endpoint.
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