3

В моем проекте Django я использую Django-storageS для сохранения медиафайлов в моем Amazon S3.Удалить файл в Amazon S3 с помощью Django-хранилищ

Я следил за этим tutorial (Я использую также Django-rest-framework). Это хорошо работает для меня: я могу загрузить некоторые изображения, и я вижу их на своем хранилище S3.

Но если я попытаюсь удалить экземпляр моей модели (содержащего ImageField), это не удалит соответствующий файл в S3. Правильно ли это? Мне нужно также удалить ресурс в S3.

ответ

1

Вы можете удалить S3 файлы, предлагая его идентификатор (имя файла в хранилище S3), используя следующий код:

import boto 
from boto.s3.key import Key 
from django.conf import settings 

def s3_delete(id): 
    s3conn = boto.connect_s3(settings.AWS_ACCESS_KEY, 
      settings.AWS_SECRET_ACCESS_KEY) 
    bucket = s3conn.get_bucket(settings.S3_BUCKET) 

    k = Key(bucket) 
    k.key = str(id) 
    k.delete() 

Убедитесь, что вы установили S3 переменная правильно settings.py в том числе: AWS_ACCESS_KEY, AWS_SECRET_ACCESS_KEY, и S3_BUCKET.