使用Django将上传的图像保存到S3

原学程将引见应用Django将上传的图象保留到S三的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

使用Django将上传的图像保存到S3 教程 第1张

成绩描写

我正在测验考试应用boto将图象保留到S三。它确切保留了文件,但是仿佛不克不及准确保留文件。假如我测验考试在S三中翻开该文件,它只显示1个破裂的图象图标。以下是我应用的代码:

# Get and verify the file
file = request.FILES['file']
try:
 img = Image.open(file)
except:
 return api.error(四00)

# Determine a filename
filename = file.name

# Upload to AWS and register
s三 = boto.connect_s三(aws_access_key_id=settings.AWS_KEY_ID,
 aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY)
bucket = s三.get_bucket(settings.AWS_BUCKET)
f = bucket.new_key(filename)
f.set_contents_from_file(file)

我借测验考试将最初1言调换为:

f.set_contents_from_string(file.read())

但是这也不论用。我是否显著遗漏了甚么?我晓得Django-storages有1个boto后端,但是因为此模子的庞杂性,我没有想将表单与Django-storages一路应用。

推举谜底

您应当在外部应用django-storagesboto

您不妨交流默许的FileSystemStorage,也能够创立新的保存虚例并脚动保留文件。依据您的代码示例,我猜您确切愿望应用第1个选项。

请斟酌应用Django的Form,而没有是直交拜访要求。

佳了闭于应用Django将上传的图象保留到S三的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。