gpt4 book ai didi

django - 如何以编程方式在 Django 中存储 S3 图像

转载 作者:行者123 更新时间:2023-12-05 05:02:43 25 4
gpt4 key购买 nike

正如此处链接的上一个问题中所述,我在 Django 中保存图像并上传到 S3。图像已经驻留在 S3 中,我想通过创建媒体对象以编程方式将图像添加到 Django。

Django storages S3 - Store existing file

我的类(class)是这样的:

class Media( models.Model ):
asset_title = models.CharField( 'Title', max_length=255, help_text='The title of this asset.' )
image_file = models.ImageField( upload_to='upload/%Y/%m/%d/', blank=True )

在我看来,我有这个:

bucket = s3.Bucket('my-bucket')

for my_bucket_object in bucket.objects.filter(Prefix='media/upload/2020'):
djfile = Media.objects.create(asset_title=my_bucket_object.key, image_file=my_bucket_object)

我目前收到 AttributeError: 's3.ObjectSummary' 对象没有属性 '_committed'

最佳答案

s3.ObjectSummary 对象可能无法被 Django 识别为图像对象。

试一试

from django.core.files.base import ContentFile

bucket = s3.Bucket('my-bucket')

for my_bucket_object in bucket.objects.filter(Prefix='media/upload/2020'):
djfile = Media.objects.create(asset_title=my_bucket_object.key, image_file=ContentFile(my_bucket_object))

The ContentFile class inherits from File, but unlike File, it operateson string content (bytes also supported), rather than an actual file
documentation

关于django - 如何以编程方式在 Django 中存储 S3 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62005607/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com