如何将内存中的django文件上传到S3

时间:2012-08-06 22:43:29

标签: python django amazon-s3

我正在尝试将fil上传到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?

1 个答案:

答案 0 :(得分:7)

我前面遇到了类似的问题,而不是使用set_contents_from_filename(f)尝试k.set_contents_from_string(f.read())

我在这个项目中做了同样的事情:https://github.com/buddylindsey/developerrage/blob/master/developerrage/comic/views.py