[英]Django - how to upload to a specific S3 bucket?
我试过了ImageField(upload_to='', storage=S3MediaStorage)
,它给出了一个错误TypeError: get_valid_name() missing positional argument: 'name'
当调用save()
时。 但是,如果我不使用storage=
并让其使用DEFAULT_FILE_STORAGE
存储桶,则它可以完美工作。
S3MediaStorage
:
class S3MediaStorage(S3BotoStorage):
def __init__(self, *args, **kwargs):
kwargs['bucket'] = getattr(settings, 'AWS_BUCKET_MEDIA')
super(S3MediaStorage, self).__init__(*args, **kwargs)
models.py
:
class Image(models.Model):
created = models.DateTimeField(auto_now_add=True)
updated = models.DateTimeField(auto_now=True)
visible = models.BooleanField(default=False)
author = models.ForeignKey(settings.AUTH_USER_MODEL, models.CASCADE)
caption = models.CharField(max_length=254, blank=True)
image = models.ImageField(upload_to='', storage=S3MediaStorage)
def __str__(self):
return str(self.created)
我究竟做错了什么? 我是否应该使用完全不同的方法将文件上传到非默认存储桶?
尝试返回super
:
return super(S3MediaStorage, self).__init__(*args, **kwargs)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.