Как создать подписанный URL в Django Rest для файла в облачном хранилище Google? - PullRequest
0 голосов
/ 11 октября 2018

Я использую Django Rest Framework для создания API.Наряду с этим я использую Google Cloud Storage для хранения медиафайлов.У меня есть несколько вопросов:

  1. Как генерировать подписанные URL-адреса файлов, используя среду отдыха django?Я искал в сети с тем же, но не смог получить четкую картину этого. Ссылка

  2. Итак, если я удалю файл в базе данных, будет ли он также автоматически удален из облачного хранилища Google?

Заранее спасибо !!!

1 Ответ

0 голосов
/ 16 октября 2018

Как генерировать подписанные URL-адреса файлов с помощью django rest framework?

Модуль django-storage позаботится об этом автоматически.

Вы можете проверить это довольно легко, если вы загрузили ресурс на свой сервер, проверьте URL в поле FileField вашей модели.(В моем случае это называется raw)

enter image description here

Если вы пойдете направо, вы увидите в URL параметр Signature.Если вы перезагрузите страницу, вы увидите, что значение подписи меняется, доказывая, что вы на самом деле используете временные подписанные URL-адреса.

Срок действия по умолчанию составляет 86400 секунд (1 день), вы можете изменить это с переменной GS_EXPIRATION.

Итак, если я удалю файл в базе данных, будет ли он автоматически удален и из облачного хранилища Google?

Не по умолчанию, но вы можете добавить эту функциюлегко путем переопределения метода удаления вашей модели

class MyModel(models.Model):
    myfile = models.FileField(upload_to='filename/')

    def delete(self, *args, **kwargs):
        self.myfile.delete()
        super(MyModel, self).delete(*args, **kwargs)
...