我们最近扩展了一个应用程序以使用多个负载平衡服务器,我有一个关于处理回形针附件的问题,更具体地说,是延迟上传到 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。