0

我正在尝试上传来自帖子的全尺寸图像,然后对其进行缩略图并将缩略图放在 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)
4

1 回答 1

0

即使您在调整大小之前调用store,也不能保证调整大小的代码不会在存储代码完成之前开始,并且由于涉及网络延迟并且S3Object的文档特别指出较大的文件(其中图像文件可以肯定会被分类)将被分块发送,很可能您正在修改尚未发送的文件。

不管是什么原因,简单的答案是制作文件的副本并调整其大小。

于 2013-02-16T23:02:28.817 回答