Paperclip s3_header proc在附件详细信息设置之前运行

时间:2017-07-27 08:46:49

标签: ruby-on-rails ruby activerecord paperclip

我正在尝试使用Paperclip 5.1.0设置存储在AWS S3上的Content-Disposition个文件。 docx,xl​​sx,pptx等文件为application/zip,因此您需要设置Content-DispositionContent-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,因此硬编码不是一种选择。)

0 个答案:

没有答案