2013-07-31 80 views
0

我們最近擴大了使用多個負載平衡服務器的應用程序,我有一個關於回形針附件的處理問題,更具體地說,延遲上傳到S3回形針與多個服務器

這裏的情景:

  • iPhone應用程序向網絡應用程序添加新數據,包括照片上傳。
  • 出於性能考慮,照片是第一次在本地存儲
  • 我們用delayed_job的處理和上傳文件到S3

下面是相關代碼:

has_attached_file :local 

has_attached_file :remote, :styles =>{:thumb =>'100x100'}, 
          :path => ":class/photos/:id_partition/:style.:extension", 
          :s3_credentials => "#{Rails.root}/config/amazon_s3.yml", 
          :storage => :s3 

after_save :update_remote 

def photo 
    remote_file_name ? remote : local 
end 

def photo=(attachment) 
    local = attachment 
end 

def update_remote 
    unless self.remote_file_name 
    if self.local.exists? 
     self.remote = self.local 
     self.local = nil 
     self.save 
    end 
    end 
end 

handle_asynchronously :update_remote

我的問題是,如何將其擴展到多個應用程序服務器?本地文件將只存在於其中的一個文件中,並且由於延遲,我很不喜歡直接上傳到S3。

回答

0

它沒有精確地回答這個問題,但我切換到使用數據庫的「本地」附件而不是文件系統,其解決該問題得到了(轉移到S3之前)