FileField получить имя файла для удаления файла в AWS
В итоге мне удалось удалить файл из AWS следующим образом:
s3 = boto3.resource('s3',
aws_access_key_id = 'BLABLABLABLA',
aws_secret_access_key = 'bLABla+2+bLbLABlaABla')
bucket_name = 'mydoc'
file_name = 'some_path/12bw.png'
s3.Object(bucket_name, file_name).delete()
Чтобы удалить запись и файл AWS, которые я создал в файле views.py:
def slett(request, id):
dokument = Dokument.objects.get(id=id)
s3 = boto3.resource('s3',
aws_access_key_id = 'BLABLABLABLA',
aws_secret_access_key = 'bLABla+2+bLbLABlaABla')
bucket_name = 'mydoc'
file_name = dokument.file.url
s3.Object(bucket_name, file_name).delete()
dokument.delete()
return HttpResponse(file_name)
Это не работает. Я получаю полный URL-адрес файла. Мне нужен только путь от bucket. Например
file_name = 'some_path/bw.png'
Я новичок в этом деле. Чтобы удалить файл, я потратил целую вечность. Теперь я потратил несколько часов, пытаясь найти путь...
Спасибо за любую помощь.
Спасибо!
Вот что я сделал:
file_name = dokument.file.url
filepath = urlparse(file_name).path