如何从一个桶中获取图像并将其放入 S3 boto 中的另一个桶中
How to fetch an image from one bucket and put it in another in S3 boto
我想从一个桶(bucket1)中取出一张图片,然后把它放到另一个桶(bucket2)中
我已经在 python 中编写了下面的代码片段,我正在尝试,但我得到的是 error:IOError: cannot identify image file.Please help.Thanks!
conn = boto.connect_s3()
filename='image2.jpg'
bucket=conn.get_bucket('bucket1')
key= bucket.get_key(filename)
fp = open (filename, "w+")
key.get_file (fp)
img = cStringIO.StringIO(fp.read())
im = Image.open(img)
b = conn.get_bucket('bucket2')
k = b.new_key('image2.jpg')
k.set_contents_from_string(out_im2.getvalue())
为什么不直接使用 copy_key
来避免下载和写入对象:
b = conn.get_bucket('bucket2')
k = b.copy_key('image2.jpg', 'bucket1', 'image2.jpg')
因为你想做一些图像处理,你需要在写入文件后回到文件的开头:
fp.seek(0, 0)
img = cStringIO.StringIO(fp.read())
im = Image.open(img)
b = conn.get_bucket('bucket2')
k = b.new_key('image2.jpg')
k.set_contents_from_string(...)
我想从一个桶(bucket1)中取出一张图片,然后把它放到另一个桶(bucket2)中 我已经在 python 中编写了下面的代码片段,我正在尝试,但我得到的是 error:IOError: cannot identify image file.Please help.Thanks!
conn = boto.connect_s3()
filename='image2.jpg'
bucket=conn.get_bucket('bucket1')
key= bucket.get_key(filename)
fp = open (filename, "w+")
key.get_file (fp)
img = cStringIO.StringIO(fp.read())
im = Image.open(img)
b = conn.get_bucket('bucket2')
k = b.new_key('image2.jpg')
k.set_contents_from_string(out_im2.getvalue())
为什么不直接使用 copy_key
来避免下载和写入对象:
b = conn.get_bucket('bucket2')
k = b.copy_key('image2.jpg', 'bucket1', 'image2.jpg')
因为你想做一些图像处理,你需要在写入文件后回到文件的开头:
fp.seek(0, 0)
img = cStringIO.StringIO(fp.read())
im = Image.open(img)
b = conn.get_bucket('bucket2')
k = b.new_key('image2.jpg')
k.set_contents_from_string(...)