我正在上傳的文件,我可以保存到S3使用SimpleS3:在Python中,我將如何打開PIL或ImageMagick的圖像作爲文件
from simples3.bucket import S3Bucket
upload = request.POST['image']
s = S3Bucket("cdn", s3.access_key, s3.secret_key)
s.put(upload.filename, upload.file.read())
某處保存,作爲一個文件並上傳之間我使用PIL或Imagemagick將作爲圖像的文件保存爲縮略圖,具體取決於上傳的圖像文件類型。這個過程就是把文件變成圖像。我的問題是如何將該圖像作爲文件打開?我正在嘗試將縮略圖上傳到亞馬遜的S3,就像我上面做的一樣。我下面的代碼是什麼,我嘗試的想法:
thumb = self._im.copy() #where _im is the Image
s = S3Bucket("cdn", s3.access_key, s3.secret_key)
s.put(self.filename+ext, thumb)
我沒有成功嘗試:
f = open(thumb, "rb")
s.put(self.filename+ext, f.read()
什麼工作,但令人難以置信的效率低下,被寫入文件到驅動用Image.save函數,然後將其打開作爲一個文件:
thumb.save(self.filename+ext)
f = open(self.filename+ext, 'r')
s.put(self.filename+ext, f.read())
想通了: 從StringIO的進口StringIO的 F = StringIO的() thumb.save(F,分機) s.put(self.filename + ext,f.getvalue()) – jchysk 2011-05-08 23:22:55
它是一個好主意,將其作爲答案發布,並在其他人遇到相同問題的情況下將其標記爲正確。 – 2011-05-09 03:48:44
我必須在發帖後等待8小時 – jchysk 2011-05-09 06:56:04