Amazon s3 如何为S3上托管的文件设置带有回形针/雾的内容处置标头?
我使用的是回形针4.2.0和FOG1.24.0,以及S3上的主机文件。我想生成一个将“内容处置”标题设置为“附件”的过期URL 回形针必须将其他参数传递给S3过期URL,但在将回形针与Amazon s3 如何为S3上托管的文件设置带有回形针/雾的内容处置标头?,amazon-s3,paperclip,fog,Amazon S3,Paperclip,Fog,我使用的是回形针4.2.0和FOG1.24.0,以及S3上的主机文件。我想生成一个将“内容处置”标题设置为“附件”的过期URL 回形针必须将其他参数传递给S3过期URL,但在将回形针与回形针::Storage::Fog一起使用时,我无法让它工作 这提供了以下解决方案: file.url(60.seconds.from_now,{:query=>{'response content disposition'=>'attachment'}} 但是它对我不起作用。我的Rails模型ResourceDo
回形针::Storage::Fog
一起使用时,我无法让它工作
这提供了以下解决方案:
file.url(60.seconds.from_now,{:query=>{'response content disposition'=>'attachment'}}
但是它对我不起作用。我的Rails模型
ResourceDocument
已经附加了文件:targetdocument.target.url(60.seconds.from_now,{:query=>{'response content disposition'=>'attachment'}}
返回的url与document.target.url(60.seconds.from_now)相同
,即生成的URL中不包含任何内容处理:“xxx.s3.amazonaws.com/uploads/resource\u documents/targets/40/2014-12-01%2017:26:20%20UTC/my\u file.csv”我正在使用aws sdk gems,它对我很好,希望这对您有所帮助
gem 'aws-sdk-core'
gem 'aws-sdk'
以及模型的方法:
def download_url
s3 = AWS::S3.new
s3_videos_bucket = 'xxxx' #bucket name goes right here
bucket = s3.buckets[s3_videos_bucket]
object_path = 'xxxx' #file path goes right here
object = bucket.objects[object_path]
object.url_for(:get, {
expires: 60.minutes,
response_content_disposition: 'attachment;'
}).to_s
end
谢谢Xing,您的解决方案对我很有效,我只是使用了文件路径而不是文件名(
object\u name=target.path
),并添加了选项response\u content\u type:MIME::Types.of(target\u file\u name)。首先中的url\u for
中,否则Safari会在下载的文件名后面添加.txt
。