Как настроить django для создания подписанных URL-адресов для мультимедийных файлов с помощью Google Cloud CDN? - PullRequest
0 голосов
/ 17 июня 2019

Я работаю над проектом, который требует загрузки медиа-файлов из Google Cloud CDN. В настоящее время я загружаю файлы в виде URL-адресов - cdn.mydomain.com/image.jpg. Но для этого необходимо обеспечить публичный доступ к объекту. Мне нужно создать подписанный URL для безопасного доступа к этим ресурсам. Я проверил django-хранилища. Он предоставляет подписанный URL прямо из хранилища, но ничего не говорит о подписанных URL для CDN. Как создать подписанные URL-адреса для Google Cloud CDN внутри django и продолжать использовать библиотеку django-storages?

Ответы [ 2 ]

1 голос
/ 17 июня 2019

Django - это веб-фреймворк Python высокого уровня.Вы можете использовать функцию Криптографическое подписывание , используемую Django с Python со подписанными URL-адресами ( Программируемое создание подписанных URL-адресов ), описанную в документации Cloud CDN.Посмотрите обе ссылки и дайте нам знать, если это поможет ответить на ваш запрос.

0 голосов
/ 14 июля 2019

В итоге я написал бэкэнд хранилища.settings.CUSTOM_DOMAIN является адресом CDN.Мой бэкэнд-код выглядит следующим образом:

class CustomGoogleCloudStorage(GoogleCloudStorage):
    custom_domain = settings.CUSTOM_DOMAIN

    def make_url(self, name):
        host = "https://" + self.custom_domain
        return urllib.parse.urljoin(host, name)

    def url(self, name):
        name = self._normalize_name(name)
        url = self.make_url(name)
        key_name, base64_key = get_storage_key()
        expiration_time = datetime.datetime.utcnow() + datetime.timedelta(hours=1) #put your desired time here
        return sign_url(url, key_name, base64_key, expiration_time)

Функция sign_url взята из github GCP .

...