Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 回形针不会生成S3URL_Ruby On Rails_Amazon S3_Paperclip - Fatal编程技术网

Ruby on rails 回形针不会生成S3URL

Ruby on rails 回形针不会生成S3URL,ruby-on-rails,amazon-s3,paperclip,Ruby On Rails,Amazon S3,Paperclip,我正在将用户上传的文件迁移到S3存储桶中。它们被成功迁移了,或者我认为是这样,因为它们都列在我的bucket的仪表板中。然后,我遵循和指导设置S3集成。我的文件如下所示: (...) #Image upload gem 'paperclip' gem 'aws-s3' # gem 'aws-sdk' won't work either (...) config.paperclip_defaults = { :storage => :s3, :path => ":class/

我正在将用户上传的文件迁移到S3存储桶中。它们被成功迁移了,或者我认为是这样,因为它们都列在我的bucket的仪表板中。然后,我遵循和指导设置S3集成。我的文件如下所示:

(...)
#Image upload
gem 'paperclip'
gem 'aws-s3' # gem 'aws-sdk' won't work either
(...)
config.paperclip_defaults = {
  :storage => :s3,
  :path => ":class/:attachment/:id/:style/:filename.:extension",
  :s3_credentials => {
    :bucket => "MY_BUCKET",
    :access_key_id => "MY_ACCESS_ID",
    :secret_access_key => "MY_SECRET"
  }
}
config/initializers/paperclip.rb:

config/environments/development.rb和config/environments/production.rb都以以下配置结尾:

config.paperclip_defaults = {
    :storage => :s3,
    :s3_credentials => {
      :bucket => "MY_BUCKET",
      :access_key_id => "MY_ACCESS_ID",
      :secret_access_key => "MY_SECRET"
    }
  }
但当我尝试获取我的附件URL时,例如User.find163.avatar.URL,它会产生:

":s3_path_url?1405653975"

有什么想法吗?

使用User.find163.avatar.url,如果以后指定样式,可以将其传递到url方法,如下所示:User.find163.avatar.url:style

编辑:

然后,我建议您删除文件initializers/paperclip.rb,并包括config.paperclip_默认值的路径,如下所示:

(...)
#Image upload
gem 'paperclip'
gem 'aws-s3' # gem 'aws-sdk' won't work either
(...)
config.paperclip_defaults = {
  :storage => :s3,
  :path => ":class/:attachment/:id/:style/:filename.:extension",
  :s3_credentials => {
    :bucket => "MY_BUCKET",
    :access_key_id => "MY_ACCESS_ID",
    :secret_access_key => "MY_SECRET"
  }
}

对不起,我的错。我忘了在原始帖子中添加.url。编辑以澄清。更新了评论,如果有帮助请告诉我,直到没有成功为止。=`=>/system/avatars/163/original/stringio.txt?1405653975`尝试添加aws sdk gem,在我的最新项目中,我有两个gem,不确定是否都需要。。。我一定要检查它是本地存储文件还是将文件上传到S3?