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. Пока ничего не работает