使用Rails和Paperclip设置存储桶名称的域名样式(bucket.s3.amazonaws.com)

关于url选项的Paperclip doc:

您可以选择将存储桶的名称放置为域样式(bucket.s3.amazonaws.com)或路径样式(s3.amazonaws.com/bucket)。

看起来设置实际上将桶的名称放置为域式? 我不能强制回形针生成像bucket.s3.amazonaws.com而不是s3.amazonaws.com/bucket这样的url。

只需设置如下:

Paperclip::Attachment.default_options[:url] = ':s3_domain_url' 

或者像这样:

 Paperclip::Attachment.default_options.merge!( :url => ':s3_domain_url' ) 

添加:url:path application.rbenvironment.rb Paperclip默认选项的:path

 config.paperclip_defaults = { storage: :s3, s3_credentials: { bucket: ENV['MY_S3_BUCKET_NAME'], access_key_id: ENV['AWS_ACCESS_KEY_ID'], secret_access_key: ENV['AWS_SECRET_ACCESS_KEY'] }, url: ':s3_domain_url', # ADD THIS path: '/:class/:attachment/:id_partition/:style/:filename' # ADD THIS } 

如果您的存储桶名称与DNS兼容,那么您可以创建url.s3.amazonaws.com / object ….

但如果它不兼容DNS,则无法按需创建。

谢谢