4

Многие вопросы и ответы на Blobstore и Google Cloud Storage (GCS) - два или три года, в то время как в эти годы ситуация резко меняется. GCS больше не является автономным сервисом. Сейчас это integrated в Google App Engine (GAE).Обслуживание изображений непосредственно из GCS в GAE с использованием API API изображений и изображений Blobstore

Google, кажется, толкать ГКС так сильно, что Blobstore is deprecated, например,

Функция API-файлы, используемые здесь, чтобы записать файлы на Blobstore был устаревшее и должны быть удалены в какой-то момент в будущем , в пользу от написания файлов в Google Cloud Storage и использование Blobstore до .

Я считаю, что пришло время переключиться на GCS.

Например, www.example.com это сайт, построенный на GAE, а example.jpg изображение хранится на ГКС, я хочу служить изображение, используя URL http://www.example.com/images/example.jpg

Это раньше было невозможно, но теперь это стало возможным благодаря до integration.

Я нашел это:

https://developers.google.com/appengine/docs/python/googlecloudstorageclient/ говорит:

Когда Blobstore API используется вместе с изображениями API, вы получаете мощный способ служить изображения, потому что вы можете использовать изображения непосредственно от GCS, минуя приложение App Engine, которое экономится, например, на час .

Я знаю, как 'в обход App Engine приложение'. Есть ли какой-нибудь пример того, как обходить GAE во время обслуживания изображений с помощью API Blobstore API и изображений?

ответ

3

Инструкция здесь: https://developers.google.com/appengine/docs/python/images/functions#Image_get_serving_url

Старт с изображением размещенную в Google Cloud Storage.

Во-первых, используйте функцию create_gs_key() API Blobstore, чтобы сгенерировать ключ blob для объекта изображения GCS. Затем передайте этот ключ blob в функцию get_serving_url() API Image API.

API-интерфейс изображения предоставит вам специальный URL-адрес, который пропускает ваше приложение для приложений приложений и служит для прямого изображения.

+0

Спасибо, но оказывается, что связь она порождает нечто вроде http://lh4.ggpht.com/TgjDT-cPRr6bjrpSVQeILk93o4Ouzjo1ygMB6KpmnCHhyH5vJKKRrqxCD2bC3T09CRIP6h5QFsV_l0hnhio5bN7z Это не то, что я хочу. Мне нужно использовать изображение, используя свой собственный URL-адрес домена, например http://www.example.com/images/example.jpg Если Blobstore устарел, это кажется невозможным в GAE. –

+1

Если у вас есть домен CNAME's Google Cloud Storage, например «images.example.com», вы можете обслуживать их непосредственно из Google Cloud Storage в виде images.example.com/example.jpg. Вы не можете использовать «www.example.com» как для движка приложений, так и для облачного хранилища Google. –

+0

Отлично, но есть ли способ обслуживать контент, отличный от изображений, скажем, видео или аудио, таким образом, пропуская движок приложения и напрямую обслуживая GCS? –

0

Обслуживание изображений с сайта «www» не является хорошей идеей, если вы используете WWW как GAE Cname, чтобы служить изображениям, вы можете создать новый поддомен. В нашем случае мы используем cdn.example.com и мы обслуживаем наши изображения, такие как http://cdn.example.com/images/example.jpg

Как это сделать.

создайте ведро GCS с именем cdn.example.com и поместите изображения под/путь к изображениям.

Укажите свой индекс и 404 страницы, и это будет хорошо.более

на этом https://cloud.google.com/storage/docs/website-configuration?hl=en

0

Вы на самом деле не нужно использовать Blobstore на все теперь. Ниже будет работать, чтобы получить URL изображения API для обслуживания изображений, хранящихся в ГКС:

from google.appengine.api import images 

images.get_serving_url(None, filename='/gs/<bucket>/<object>')) 
Смежные вопросы