Я хочу google.appengine.ext.blobstore
и google.appengine.api.images
работать вне App Engine. Для работы этих модулей требуется App Engine? Я хочу создавать общедоступные, но не угадываемые URL-адреса моих изображений в Google Cloud Storage и обслуживать их через Django.Как обслуживать изображения Google Cloud Storage?
Я прочитал, что это делается с google.appengine.ext.blobstore.create_gs_key()
и google.appengine.api.images.get_serving_url()
. Это то, что я до сих пор:
from google.appengine.api import images
from google.appengine.ext import blobstore
bucketname = 'mybucket'
gcs_object_name = '/gs/mybucket/vincent-van-gogh/the-starry-night.jpg'
blob_key = blobstore.create_gs_key(gcs_object_name)
image_url = images.get_serving_url(blob_key)
И IMAGE_URL должен быть публичным, но не угадываемы URL моего образа. Если я запускаю этот код, ошибка
AssertionError: No api proxy found for service "blobstore"
Это говорит о том Blobstore нужен прокси-сервер, он же App Engine, чтобы работать его волшебство. Могут ли модули App Engine работать вне App Engine? Документы говорят, что вышеупомянутое является мощным способом обслуживания изображений, потому что я могу генерировать URL-адрес для каждого изображения, а также динамически изменять размер изображения.
Будет ли эта стратегия работать или есть лучший способ обслуживать изображения из Google Cloud Storage с помощью Django?
Это не сработает. Предварительные требования: «У вас должен быть проект appengine. Это не будет работать как автономное решение для проектов, не связанных с appengine django, так как не существует механизма аутентификации с облачным хранилищем Google». –
У меня нет проекта App Engine, и я не хочу этого. У меня есть автономный проект Django в Google Compute Engine. –
Вы можете обслуживать свои изображения непосредственно из хранилища, просто сделайте его доступным для чтения. Вы должны использовать App Engine для использования компонентов App Engine, таких как blobstore, get_serving URL afaik. –