2013-02-16 70 views
0

我試圖上傳來自帖子的全尺寸圖像,然後縮略圖並將縮略圖放在S3上。但是,我遇到了一個奇怪的問題,即我的調整大小代碼似乎正在影響全尺寸圖像,即使S3在任何調整大小發生之前都應該存儲它。這裏的代碼說明它的一個片段:MiniMagick影響調整大小代碼之前的Amazon S3文件

AWS::S3::S3Object.store(fullPath, open(params[:photo][:tempfile]), BS.config[:service][:aws][:bucket], :access => :public_read) 

    thumbnail = MiniMagick::Image.open(params[:photo][:tempfile].path) 
    thumbnail.combine_options do |c| 
    c.resize('200x200^') 
    c.gravity('center') 
    c.crop('200x200+0+0') 
    end 

    AWS::S3::S3Object.store(thumbnailPath, thumbnail.to_blob, BS.config[:service][:aws][:bucket], :access => :public_read) 

回答

0

即使你做大小調整之前調用store,但也不能保證爲resize用於存儲的代碼之前不會開始編寫代碼已經完成,因爲有所涉及的網絡延遲和docs for S3Object明確指出,較大的文件(其中的圖像文件肯定可歸類)將以塊形式發送,這很可能是您正在修改尚未發送的文件。

不管什麼原因,簡單的答案就是製作一個文件的副本並調整它的大小。

+0

我結束了使用回形針,因爲它提供了我所需要的更簡化的包。我認爲這是正確的,因爲這是我原來的問題的正確答案。 – nullfox 2013-02-23 06:23:06

+0

@nullfox很高興你有它排序。 – iain 2013-02-23 06:38:16

相關問題