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 に答える