[英]Backup MySQL DB along with CarrierWave uploads stored in S3
在Rails應用程序中,我想備份MySQL數據庫以及存儲在Amazon S3中的CarrierWave上傳文件。 我研究了S3對象版本控制,但在CarrierWave中找不到任何支持。
有人做過嗎? 還是有什么想法?
class BaseUploader < CarrierWave::Uploader::Base
# Override the filename of the uploaded files:
def filename
return unless original_filename
if model && model.read_attribute(mounted_as).present? && model.changed.blank?
model.read_attribute(mounted_as)
else
ext = File.extname(original_filename)
base = File.basename(original_filename, ext)
"#{base}_#{token}#{ext}"
end
end
# override method to avoid deletion of file
def remove!; end
protected
def token
var = :"@#{mounted_as}_token"
model.instance_variable_get(var) or model.instance_variable_set(var, Time.now.to_i)
end
end
我已經使用這種方法在每次上傳文件時創建唯一的文件名,因此避免了覆蓋具有相同名稱的先前文件的可能性。 另外,我還配置了CarrierWave在更新時不刪除以前存儲的文件。 因此,現在,如果我還原數據庫備份,則映像將在那里。
摘錄源於創建隨機且唯一的文件名 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.