Get_serving_url silently fails with django-storages, app engine, python 3.x

Я пытаюсь получить seving_url для проекта, который использует django-storages с облачным хранилищем google для медиафайлов.

Я пытаюсь обслужить файлы с помощью get_serving_url, но получаю тихий отказ без текста, занесенного в исключение.

Из того, что я вижу, blobkey генерируется правильно. однако при выполнении image = images.get_serving_url(blobkey, secure_url=True) возникает исключение без текста ошибки.

Вот что я сделал:

#storage_backends.py

class GoogleCloudMediaStorage(GoogleCloudStorage):
    """GoogleCloudStorage suitable for Django's Media files."""

    def __init__(self, *args, **kwargs):
        if not settings.MEDIA_URL:
            raise Exception('MEDIA_URL has not been configured')
        kwargs['bucket_name'] = setting('GS_MEDIA_BUCKET_NAME')
        super(GoogleCloudMediaStorage, self).__init__(*args, **kwargs)

    #this works fine
    def url(self, name):
        """.url that doesn't call Google."""
        return urljoin(settings.MEDIA_URL, name)

    #https://programtalk.com/python-examples/google.appengine.api.images.get_serving_url/_
    #This does not work yet
    def serving_url(self, name):
        logging.info('serving url called')
        if settings.DEBUG:
            return urljoin(settings.MEDIA_URL, name)
        else:    
            # Your app's GCS bucket and any folder structure you have used. 
            try:
                logging.info('trying to get serving_url')
                filename = settings.GS_MEDIA_BUCKET_NAME + '/' + name
                logging.info(filename)
                blobkey = blobstore.create_gs_key('/gs/' + filename) 
                logging.info('This is a blobkey')
                logging.info(blobkey)
                image = images.get_serving_url(blobkey, secure_url=True)
                return image
            except Exception as e:
                logging.warn('didnt work')
                logging.warn(e)
                return urljoin(settings.MEDIA_URL, name)

У меня установлен appengine-python-standard и я обернул свое приложение

#main.py

from antiques_project.wsgi import application
from google.appengine.api import wrap_wsgi_app

app = wrap_wsgi_app(application)

У меня также есть это в моем app.yaml

app_engine_apis: true

Я пробовал генерировать blobkey разными способами (с bucket и без bucket). Я также пробовал secure_url = False и True. Пока ничего не работает

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