【发布时间】:2015-07-16 12:33:49
【问题描述】:
我编写了一个 rake 任务,它从存储桶中的一个目录复制到同一存储桶中的另一个目录。当我在本地测试它时它工作正常,但是当我将它部署到环境时它返回 AWS::S3::Errors::AccessDenied: Access Denied。我认为这与我正在部署的环境中的 AWS 凭证有关,我也相信问题与 copy_to 有关,因为我从 rails 控制台访问存储桶并且没有问题
我的声明副本如下
creds = YAML::load_file(Rails.root.join("config", "s3.yml"))
AWS.config(aws_access_key_id: creds[:access_key_id],
aws_secret_access_key: creds[:secret_access_key])
s3.buckets['test-bucket'].objects['path to file'].copy_to('new_path')
【问题讨论】:
-
你能告诉我们初始化s3变量的代码吗?
-
凭证只是从 YAML 文件中读取的。我检查了控制台,它们被正确返回了
-
所以当你从控制台做同样的事情时一切都好吗?
-
这个命令从服务器返回什么:s3.buckets['test-bucket'].objects['path to file'].key ?
-
返回对象的路径
标签: ruby-on-rails ruby amazon-web-services amazon-s3