使用Django将图像上传到Amazon S3

僵局

我目前正在动态调整用户上传图片时的图片大小。原始图片存储在名为djangobucket的存储区中的Amazon S3上。在此存储桶中,包含数千个文件夹。

每个文件夹均以用户命名。我不必担心存储区创建或文件夹创建,因为所有这些操作都是从客户端处理的。

这是一个图:

djangobucket  ------------> bob ---------> picture1.jpg
                                           picture2.jpg
                                           picture3.jpg
                                           picture4.jpg

如您所见,鲍勃有很多照片。用户将图片上传到S3后,我将通过URL通过Django下载图片,在这种情况下,它将是:http : //s3.amazonaws.com/djangobucket/bob/picture1.jpg

我下载图像并执行图像处理,并将处理后的图像保存在django应用服务器上。

我想将此经过处理的图像发送回bob的文件夹,以便可以在http://s3.amazonaws.com/djangobucket/bob/picture1_processed.jpg上公开访问它。

客户已经可以访问亚马逊密钥和秘密密钥,以便他或她可以将图片上传到此存储桶。服务上的所有用户都使用相同的密钥。我也将使用相同的键。

我听说过一种叫做Boto的东西,但是它涉及创建存储桶,我不确定如何仅执行上传部分。我只关心将图片上传到适当的用户文件夹。

我已经研究了几个小时,所以我去找了这里的专家。

这是我的代码,以便您可以更好地了解我在做什么。

user = 'bob'

url = 'http://s3.amazonaws.com/djangobucket/bob/picture1.jpg'
filename = url.split('/')[-1].split('.')[0]

download_photo = urllib.urlretrieve(url, "/home/ubuntu/Desktop/Resized_Images/%s.jpg" % (filename))
downloaded_photo = Image.open("/home/ubuntu/Desktop/Resized_Images/%s.jpg" % (filename))

resized_photo = downloaded_photo.resize((300, 300), Image.ANTIALIAS)
new_filename = filename + "_processed"

resized_photo.save("/home/ubuntu/Desktop/Resized_Images/%s.jpg" % (new_filename)) 

我想将保存在/ home / ubuntu / Desktop / Resized_Images /中的调整大小后的照片发送到Amazon S3上djangobucket中的Bob的文件夹中,并使其公开可见。

谢谢你的帮助。

编辑我找到了此链接:http : //www.laurentluce.com/posts/upload-and-download-files-tofrom-amazon-s3-using-pythondjango/

对于我的案子,如何使用它并不完全是正确的,但是我认为我走在正确的道路上。

埃波

boto 是做到这一点的最佳方法。

您可以使用以下方法获取现有存储桶:

get_bucket(bucket_name, validate=True, headers=None)

安装boto后,此代码应完成您需要做的事情

from boto.s3.connection import S3Connection
from boto.s3.key import Key

conn = S3Connection('<aws access key>', '<aws secret key>')
bucket = conn.get_bucket('<bucket name>')
k = Key(bucket)
k.key = 'file_path_on_s3' # for example, 'images/bob/resized_image1.png'
k.set_contents_from_file(resized_photo)

以下是Boto APIBoto S3 Doc的一些链接

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Swift3将图像上传到Amazon S3

来自分类Dev

显示使用Swift 3和Amazon SDK将图像上传到Amazon S3的上传进度

来自分类Dev

使用Transloadit将路径图像+文件上传到Amazon S3

来自分类Dev

使用Flask-admin将图像上传到Amazon S3

来自分类Dev

使用Java将Base64编码的图像上传到Amazon s3

来自分类Dev

使用AWS PreSignedURL将图像上传到Amazon S3

来自分类Dev

使用 Amazon Educate Starter 账户将图像上传到 S3

来自分类Dev

使用NodeJS将文件上传到Amazon S3

来自分类Dev

如何在使用 django 存储和 django rest 框架将图像上传到 Amazon s3 之前压缩图像?

来自分类Dev

将图像上传到S3

来自分类Dev

如何使用Node将图像上传到S3

来自分类Dev

cordova / phonegap图像上传到Amazon s3

来自分类Dev

从URL获取图像并上传到Amazon S3

来自分类Dev

将图像上传到S3无法完成上传

来自分类Dev

Amazon S3 AWS将图像上传到文件夹

来自分类Dev

Android将图像从设备库上传到Amazon S3服务器

来自分类Dev

将图像上传到Amazon s3改装失败:超时

来自分类Dev

如何一次将数千张图像上传到Amazon S3

来自分类Dev

使用NodeJS和S3FS / multiparty将文件上传到Amazon S3

来自分类Dev

使用tinys3上传到Amazon S3

来自分类Dev

将文件上传到Amazon S3

来自分类Dev

将文件从iOS上传到Amazon S3

来自分类Dev

将文件从iOS上传到Amazon S3

来自分类Dev

将Blob文件上传到Amazon s3

来自分类Dev

将文件上传到Amazon S3

来自分类Dev

使用上传到Amazon S3的JQuery文件在客户端调整图像大小

来自分类Dev

使用 Rails 中的 PaperClip 更改上传到 Amazon S3 上的图像的路径

来自分类Dev

直接从浏览器将图像上传到Amazon S3-使用angular js

来自分类Dev

使用 PHP 将文件上传到 Amazon S3 存储桶 - 不使用 SDK

Related 相关文章

热门标签

归档