Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何以编程方式在Django中存储S3图像_Django_Amazon S3_Boto3_Python Django Storages - Fatal编程技术网

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

如何以编程方式在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

正如前面链接到这里的问题所指出的,我所做的与用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.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不同,它是运行的 关于字符串内容(也支持字节),而不是实际的文件