我正在尝试使用Paperclip 5.1.0设置存储在AWS S3上的Content-Disposition
个文件。 docx,xlsx,pptx等文件为application/zip
,因此您需要设置Content-Disposition
或Content-Type
以使S3返回.docx而不是.zip文件。
建议的方法是使用proc。
设置s3_headers
has_attached_file :document,
:s3_headers => proc { |attachment|
Rails.logger.debug(attachment.to_json)
{ "Content-Disposition" => "attachment; filename=\"#{attachment.document_file_name}\"" }
}
这似乎在文件处理之前运行;
{"id":null,"document_file_name":null,"document_content_type":null,"document_file_size":null,"document_updated_at":null,"solution_id":null,"user_id":null,"created_at":null,"updated_at":null}
如何在Paperclip处理了足够的附件以获取document_file_name
等基本信息后运行此proc?
(我已经尝试了`before_document_post_process'和其他没有欢乐的回调。我还需要存储一系列文件,而不仅仅是.docx,因此硬编码不是一种选择。)