我正在使用Paperclip和Rails 4应用程序以及Amazon S3存储。在我的开发机器上,该站点正在
运行/Users/Jeff/Sites/example.com/web
当我将带有Paperclip的文件上传到S3时,S3中的远程路径会继承我的本地文件夹结构。
http://s3.amazonaws.com/example_com_bucket/Users/Jeff/Sites/example.com/web/public/assets/uploads/my_class/8/medium/some_image.png?1383060287
为什么会这样?如何剥离该部分?我尝试更改:path
属性,但这似乎只影响路径的“应用程序”部分(例如在/assets/uploads
之后)我的网站仍在开发中,所以我不在乎必须保留链接。
我的配置是......
config.paperclip_defaults = {
:storage => :s3,
:path => '/:class/:attachment/:id_partition/:style/:filename',
:s3_credentials => {
:bucket => 'example_com_bucket',
:access_key_id => '...',
:secret_access_key => '...'
}
}
答案 0 :(得分:0)
当我使用:url
参数我应该使用:path
参数时,我遇到了同样的问题:
has_attached_file :primary_photo,
:styles => ...,
:storage => :s3,
:s3_host_name => 's3-us-west-2.amazonaws.com',
:s3_credentials => 'config/s3.yml',
:url => '/product/:attachment/:id/:style/:filename'
我通过将配置更改为此来修复它:
has_attached_file :primary_photo,
:styles => ...,
:storage => :s3,
:s3_host_name => 's3-us-west-2.amazonaws.com',
:s3_credentials => 'config/s3.yml',
:path => '/product/:attachment/:id/:style/:filename'