2012-08-06 55 views
3

我想在不使用自定義後端的情況下將fil上傳到S3。這是我到目前爲止有:如何將內存中的django文件上傳到S3

conn=boto.connect_s3(settings.AWS_KEY, settings.AWS_SECRET) 
bucket=conn.get_bucket(settings.AWS_BUCKET) 
k = Key(bucket) 

filename = f.name 
keyname = str(int(uuid.uuid4()))[:10] + filename 
k.key = keyname 
k.set_contents_from_filename(f) 
url = "https://s3.amazonaws.com/.../" + keyname 

而且我得到以下錯誤:

TypeError at /qc/86/ 
coercing to Unicode: need string or buffer, InMemoryUploadedFile found 

我將如何正確地從request['FILES']上傳文件,而無需使用自定義存儲後端到S3?

回答

7

我遇到類似的問題而回,而不是使用set_contents_from_filename(f)嘗試k.set_contents_from_string(f.read())

我做同樣的事情,在這個項目中的位置:https://github.com/buddylindsey/developerrage/blob/master/developerrage/comic/views.py

+0

大,這是我的問題也。謝謝。 – David542 2012-08-06 23:18:25

+0

很高興我能夠提供幫助。 – percent20 2012-08-08 05:55:09

+0

如何做到這一點是boto3? – 2016-02-22 13:12:16

相關問題