MiniMagick影响调整大小代码之前的Amazon S3文件

时间:2013-02-16 09:23:09

标签: ruby sinatra rmagick minimagick grape

我正在尝试上传来自帖子的完整尺寸图片,然后缩略图并将缩略图放在S3上。但是,我遇到了一个奇怪的问题,我的调整大小代码似乎影响了完整大小的图像,即使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)

1 个答案:

答案 0 :(得分:0)

即使在调整大小之前调用store,也无法保证调整大小的代码在存储代码完成之前没有开始,并且由于涉及网络延迟而且docs for S3Object具体假设较大的文件(其中的图像文件肯定会被分类)将以块的形式发送,很可能你正在修改一个尚未发送的文件。

无论是什么原因,简单的答案是复制文件并调整大小。