如何以编程方式在Django中存储S3图像
正如前面链接到这里的问题所指出的,我所做的与用Django保存上传到S3的图像相反。图像已经驻留在S3中,我想通过创建媒体对象以编程方式将图像添加到Django中 我的班级是这样的:如何以编程方式在Django中存储S3图像,django,amazon-s3,boto3,python-django-storages,Django,Amazon S3,Boto3,Python Django Storages,正如前面链接到这里的问题所指出的,我所做的与用Django保存上传到S3的图像相反。图像已经驻留在S3中,我想通过创建媒体对象以编程方式将图像添加到Django中 我的班级是这样的: class Media( models.Model ): asset_title = models.CharField( 'Title', max_length=255, help_text='The title of this asset.' ) image_file = models.Imag
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'对象没有属性'\u committed'
s3。Django可能无法将ObjectSummary
对象标识为图像对象
试试这个
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))
ContentFile类继承自File,但与File不同,它是运行的
关于字符串内容(也支持字节),而不是实际的文件