從這個問題開始:Ruby - How to set data_uri (base64) filename with Shrine
這非常適合我的用例,但是,創建的衍生物都具有檔案名“image_processing_xxx”。URL 看起來不錯,但是當您右鍵單擊下載每個影像時,檔案名看起來不正確或與 URL 不匹配。
是否可以重命名這些檔案以匹配新的原始檔案名 - 并在每個檔案的末尾(在 .png/.jpeg 之前)包含自定義“_2x”或“_mobile”?我可以在某個地方覆寫它嗎?我已經嘗試了很多插件,但到目前為止還沒有這樣的運氣。
uj5u.com熱心網友回復:
如果有人嘗試這樣做,我已經測驗了這種作業方法:
add_metadata :filename do |io, record: nil, derivative: nil, **context|
# Get file extension
mime_type = context[:metadata]['mime_type']
extension = Shrine.infer_extension(mime_type)
# Set filename
if derivative
"#{derivative.to_s.dasherize}-photo-#{record.slug}" extension.to_s
else
"original-photo-#{record.slug}" extension.to_s
end
end
這給出了名為下載 URL 的衍生版本,以及原始檔案的“原始”,兩者都具有正確的檔案擴展名。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/465064.html
