Python PIL将图像保存到Amazon S3上的不同“文件夹”

时间:2015-05-08 19:43:11

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

我需要将我的头像保存到我的Amazon S3存储桶中的“avatar”文件夹中。

Bucket
-Static
--Misc
-Media
--Originals
--Avatars

目前,当我创建头像时,它会保存到Originals“文件夹”。我的目标是将其保存到Avatars“文件夹”。

以下是我创建和保存头像的代码

    def create_avatar(self):
    import os
    from PIL import Image
    from django.core.files.storage import default_storage as storage

    if not self.filename:
        return ""
    file_path = self.filename.name

    filename_base, filename_ext = os.path.splitext(file_path)
    thumb_file_path = "%s_thumb.jpg" % filename_base

    if storage.exists(thumb_file_path):
        return "exists"
    try:
        # resize the original image and return url path of the thumbnail
        f = storage.open(file_path, 'r')
        image = Image.open(f)
        width, height = image.size

        size = 128, 128
        image.thumbnail(size, Image.ANTIALIAS)

        f_thumb = storage.open(thumb_file_path, "w")
        image.save(f_thumb, "JPEG", quality=90)
        f_thumb.close()
        return "success"
    except:
        return "error"

1 个答案:

答案 0 :(得分:0)

我可以通过使用简单的python replace()函数重命名文件路径,将头像保存到所需的“文件夹”。

如果其他人需要在S3存储桶中“移动”文件

,这就成功了
thumb_file_path = thumb_file_path.replace('originals/', 'avatar/')