【问题标题】:Django: How to delete Media Files on Digitalocean Spaces/ Amazon S3 automatically when Model instance is deletedDjango:删除模型实例时如何自动删除 Digitalocean Spaces/Amazon S3 上的媒体文件
【发布时间】:2021-09-21 10:30:19
【问题描述】:

我的 Django-App 中定义了以下模型

def directory_path(instance, filename):
    return 'attachments/{0}_{1}/{2}'.format(instance.date, instance.title, filename)

class Note(models.Model):
    title = models.CharField(max_length=200)
    date = models.DateField(default=datetime.date.today)
    # File will be saved to MEDIA_ROOT/attachments
    attachment = models.FileField(upload_to=directory_path)

    def __str__(self):
        return self.title

我成功设置了 AWS S3/Digitalocean Spaces 来存储通过附件字段上传的媒体文件。但是,当我删除模型的一个实例时,该文件仍保留在我的存储桶中。如果相应的模型实例被删除,我该怎么做才能自动删除我的 s3 存储桶中的文件?

【问题讨论】:

标签: python django amazon-s3 django-models digital-ocean-spaces


【解决方案1】:

好的,所以最简单的方法似乎是使用第三方包django-cleanup,详情请参阅https://github.com/un1t/django-cleanup。

您唯一需要做的就是安装应用程序,将其添加到settings.py 中的INSTALLED_APPS 的底部,就是这样。

当我删除模型实例时,该文件也会在我的 Amazon S3/Digitalocean Spaces 存储桶中自动删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 1970-01-01
    • 2012-07-10
    • 2015-06-05
    • 2013-01-07
    • 1970-01-01
    相关资源
    最近更新 更多