Estoy usando una cuenta de Azure Storage para almacenar mis archivos multimedia
Configurarlo es simple en settings.py así:
DEFAULT_FILE_STORAGE = 'storages.backends.azure_storage.AzureStorage' AZURE_ACCOUNT_NAME = 'my_account_name' AZURE_ACCOUNT_KEY = 'my_account_key' AZURE_CONTAINER = 'my-container'Sin embargo, más tarde consideré que quiero usar Azure CDN en su lugar para servir mis archivos multimedia. ¿Cómo lo apuntaré a la URL de CDN en su lugar? Intenté configurarlo en MEDIA_URL como
MEDIA_ROOT = os.path.join(BASE_DIR, 'upload') MEDIA_URL = '//my-media.azureedge.net/my-container/'Sin embargo, mi blob de cuenta de almacenamiento es el que se muestra como URL predeterminada, que es 'xxxxx.blob.core.windows.net' en lugar de mi URL MEDIA.
¿Cómo mostraré MEDIA_URL en lugar de 'xxxxx.blob.core.windows.net'?
Afortunadamente ya tengo una respuesta para esto. Debe invalidar la clase de back-end de almacenamiento de Azure en la biblioteca de "almacenamiento" reemplazando el nombre de host del blob con el nombre de host de CDN.
configuración.py
MEDIA_URL = '//my-media.azureedge.net/my-container/'almacenamientos.py
import re from jaguar import settings from storages.backends.azure_storage import AzureStorage class AzureCDNURL(AzureStorage): def url(self, name): ret = super(AzureCDNURL, self).url(name) _ret = re.sub('//[az.0-9A-Z]*/', settings.MEDIA_URL, ret) return _ret