无法将从RMagick gem append方法返回的Image对象写入Amazon S3

时间:2012-05-06 05:06:08

标签: ruby amazon-s3 imagemagick rmagick

我正在使用RMagick gem阅读三张图片,然后将它们添加到ImageList

imagelist = ImageList.new

imagelist << Image.read(path1)[0]
imagelist << Image.read(path2)[0]
imagelist << Image.read(path3)[0]

然后我将这三个图像与append方法结合起来

combined_image = imagelist.append(false)

然后我尝试将此图像写入Amazon S3:

AWS::S3::S3Object.store(filename, combined_image, bucket)

但是,我收到此错误,导致我无法成功将图像写入S3:

undefined method `size' for #<Magick::Image:0x00000101994498>

我在控制台中使用了RMagic,我发现当append中的ImageList图像时,它会返回一个Image,它似乎省略了它的大小(以字节为单位)。 / p>

如何修改此图像以便将其写入S3?

2 个答案:

答案 0 :(得分:1)

想出来。诀窍是通过调用combined_imageto_blob变为二进制大对象。

答案 1 :(得分:0)

我建议您检查combined_image.display是否显示所需的附加图像。 如果是这样,AWS :: S3必须像云的任何其他常规存储语法一样存储图像文件。