Сигнал Django для удаления файла на aws s3 не работает

#django #amazon-web-services #amazon-s3 #signals

Вопрос:

Я написал сигнал pre_save в Django для автоматического удаления старого профиля пользователя, если пользователь обновит свой профиль. Это мой код.

 @receiver(pre_save, sender=User) def delete_file_on_update(sender, instance, **kwargs):  """  Delete the user's old profile pic file when user update the profile  and return the status True or False i.e where old pic is deleted or  not.  """   # If instance is saving for first time in database, don't delete  # profile_pic file.  try:  old_file = sender.objects.get(pk=instance.pk).profile_pic  except sender.DoesNotExist:  return False   # If user has not updated profile pic, don't delete profile_pic  # file.  new_file = instance.profile_pic  if old_file == new_file:  return False    try:  old_file.delete(save=False)  return True  except Exception:  return False  

Это работало нормально, когда хранилище было локальным, но когда я использовал хранилище AWS s3, оно больше не удаляет старый profile_pic. Также при отладке этот сигнал вызывается для каждого предварительного сохранения пользователя и old_file.удаление(сохранить=ложь) также выполняется, но файл не удаляется на AWS s3.

Комментарии:

1. Где ваш код для удаления объекта из S3?

2. в последней попытке-за исключением того, что я написал old_file. удалить(сохранить=false), old_file-это старый профиль пользователя и объект файла изображения.

3. Единственная причина, которая приходит мне на ум, — это неправильная конфигурация S3, но вопрос нуждается в разъяснении по этой части. Можете ли вы сохранить фотографию профиля с помощью S3? Имеет ли ваша локальная среда доступ к корзине S3 с необходимыми разрешениями для создания/удаления объектов? Для участников всегда лучше, если вы поделитесь более подробной информацией (например, содержимым файла связанных настроек) перед отправкой своего вопроса.

4. Профиль пользователя _pic загружается на AWS s3. Но как я могу узнать, есть ли у меня разрешение на удаление объекта на s3 из локальной среды.

5. Добавьте ведение журнала, особенно в обработчиках исключений.