1

Amazon s3 から画像を取得し、Rmagick を使用して画像を s3 にアップロードしようとしています。right_aws と RMagick/mini_magick を使用してこれを実行しようとしています。これまでのところ、私は運がありませんでした。コマンドラインでテストすると、Imagemagick は正しくインストールされているようです。

これが私が現在やろうとしていることです:

right_aws で画像を取得し、RightAws::Key として保存します。

s3 = RightAws::S3.new(ID, Secret)
bucket = s3.bucket( 'baneling')
key = RightAws::S3::Key.create(bucket, 'flower.jpg')

次に、key.data を画像ファイルに変換しようとしています。このコードで mini_magick を試してみると:

image = MiniMagick::Image.read(key.data)

また

image = MiniMagick::Image.read(key.public_link)
#key.public_link is public s3 url to image. i.e. https://s3.amazonaws.com/bucket.flower.jpg

私はこのエラーが発生します:

MiniMagick::Invalid: MiniMagick::Invalid
from /home/adnan/.rvm/gems/ruby-1.9.3-p194/gems/mini_magick-3.4/lib/mini_magick.rb:164:in `create'

RMagickで試してみると:

Magick::Image.from_blob(key.data)

また

image = Magick::ImageList.new  
urlimage = open(key.public_link, 'rb')
image.from_blob(urlimage.read)

私はこのエラーが発生します:

Magick::ImageMagickError: no decode delegate for this image format `' @ error/blob.c/BlobToImage/360

私が間違っていることを知っている人はいますか?jpg や png など、いろいろな画像を試してみました。Rails 3.2.3、ruby 1.9.3p194、ubuntu 11.04、right_aws 3.0.4、rmagick 2.13.1、mini_magick 3.4 を使用しています。

4

0 に答える 0