簡體   English   中英

備份MySQL數據庫以及S3中存儲的CarrierWave上傳

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM