将文件上传到S3存储桶 - Python Django

时间:2016-07-29 13:47:11

标签: python django amazon-web-services amazon-s3

我想将一个字符串(这是一个xml响应)放入一个文件中,然后将其上传到amazon s3存储桶。以下是我在Python3中的功能

def excess_data(user, resume):
    res_data = BytesIO(bytes(resume, "UTF-8"))
    file_name = 'name_of_file/{}_resume.xml'.format(user.id)
    s3 = S3Storage(bucket="Name of bucket", endpoint='s3-us-west-2.amazonaws.com')
    response = s3.save(file_name, res_data)
    url = s3.url(file_name)
    print(url)
    print(response)
    return get_bytes_from_url(url)

然而,当我运行此脚本时,我一直收到错误 - AttributeError: Unable to determine the file's size.知道如何解决此问题吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

我在我的Django项目中使用s3boto(需要python-boto)来连接S3。

使用boto很容易做你想做的事情:

>>> from boto.s3.key import Key
>>> k = Key(bucket)
>>> k.key = 'foobar'
>>> k.set_contents_from_string('This is a test of S3')

请参阅此documentation存储数据部分。

我希望它有助于解决您的问题。