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

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

@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. Также при отладке этот сигнал вызывается на каждом pre_save пользователя и old_file.delete(save=false) также выполняется, но файл не удаляется на AWS s3.

Вернуться на верх