簡體   English   中英

Django-AWS S3,無法刪除存儲桶對象

[英]Django-AWS S3, unable to delete bucket objects

我有一個 Django 項目,其中 MySQL 存儲和媒體對象(圖像)存儲在 AWS S3 簡單存儲中。

管理員可以通過管理面板上傳圖片,也可以在網站上顯示。

當管理員刪除對象時,它會在 MySQL 中被刪除,但它的關聯圖像會保留在 S3 存儲桶中。

設置.py

AWS_ACCESS_KEY_ID = ''
AWS_SECRET_ACCESS_KEY = ''
AWS_STORAGE_BUCKET_NAME = ''
AWS_S3_CUSTOM_DOMAIN = f"{AWS_STORAGE_BUCKET_NAME}.s3.me-south-1.amazonaws.com"
AWS_S3_OBJECT_PARAMETERS = {'CacheControl': 'max-age=86400'}
PUBLIC_MEDIA_LOCATION = 'media'
MEDIA_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/{PUBLIC_MEDIA_LOCATION}/'
DEFAULT_FILE_STORAGE = 'news.storage_backends.MediaStorage'

STORAGE_BACKENDS.PY

from storages.backends.s3boto3 import S3Boto3Storage
from django.conf import settings


class MediaStorage(S3Boto3Storage):
    location = 'media'
    default_acl = 'public-read'
    file_overwrite = False

我是附件中的用戶詳細信息,

在此處輸入圖像描述

正如 Luiz 所說,這些文件在刪除 object 后仍然存在。 我建議在刪除 object 后創建一個刪除文件的信號:

@receiver(models.signals.post_delete, sender=YourModel)
def remove_image_file_from_s3_on_delete(sender, instance, **kwargs):
    instance.your_field_name.delete(save=False)

我使用了django-cleanup應用程序,它相當容易設置https://pypi.org/project/django-cleanup/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM