如何配置django为使用Google Cloud CDN的媒体文件生成签名URL?

如何配置django为使用Google Cloud CDN的媒体文件生成签名URL?,django,google-cloud-cdn,Django,Google Cloud Cdn,我正在从事一个项目,需要从谷歌云CDN加载媒体文件。目前,我正在加载URL格式的文件-cdn.mydomain.com/image.jpg。但这需要提供对对象的公共访问。我需要生成签名url以安全访问这些资源。我查过django仓库。它直接从存储桶中提供签名url,但没有说明CDN的签名url。如何在django内部为Google Cloud CDN生成签名URL并继续使用django存储库?django是一个高级Python Web框架。您可以将Django使用的特性与CloudCDN文档中描

我正在从事一个项目,需要从谷歌云CDN加载媒体文件。目前,我正在加载URL格式的文件-cdn.mydomain.com/image.jpg。但这需要提供对对象的公共访问。我需要生成签名url以安全访问这些资源。我查过django仓库。它直接从存储桶中提供签名url,但没有说明CDN的签名url。如何在django内部为Google Cloud CDN生成签名URL并继续使用django存储库?

django是一个高级Python Web框架。您可以将Django使用的特性与CloudCDN文档中描述的签名URL Python一起使用。看看这两个链接,让我们知道这是否有助于回答您的询问

Django是一个高级Python Web框架。您可以将Django使用的特性与CloudCDN文档中描述的签名URL Python一起使用。看看这两个链接,让我们知道这是否有助于回答您的询问

我最终编写了一个存储后端。settings.CUSTOM_域是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函数取自

我最终编写了一个存储后端。settings.CUSTOM_域是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函数取自