如何创建Django自定义文件字段以使用特定存储桶上传到亚马逊S3

时间:2019-03-15 05:33:31

标签: django amazon-s3

我有几个Amazon S3存储桶,我想创建多个文件字段保存到相应的存储桶

我已经阅读了有关创建存储类并使用S3Boto3Storage的知识,但是这需要在设置级别指定存储桶名称,我无法针对不同的用例设置不同的存储桶,例如以下示例:

class AmazonS3Storage(S3Boto3Storage):

    def get_available_name(self, name, max_length=None):
        return name

有人对此有解决方案吗?

1 个答案:

答案 0 :(得分:0)

找到了解决方案。我发现在S3Boto3Storage中有一个'bucket_name'属性,我可以在扩展S3Boto3Storage时声明bucket_name

class CustomStorageBucket1(S3Boto3Storage):
    bucket_name = "your_bucket_name_1"

class CustomStorageBucket2(S3Boto3Storage):
    bucket_name = "your_bucket_name_2"

在型号内

test_image = models.ImageField(storage=CustomStorageBucket1(),
                                        upload_to='/test', max_length=50)