right_aws和RMagick / mini_magick:无法从s3抓取的图像中创建Image对象

时间:2012-05-22 22:53:07

标签: ruby amazon-s3 rmagick minimagick right-aws

我正试图从亚马逊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转换为Image文件。 如果我尝试使用此代码使用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。

0 个答案:

没有答案