Существует проект GAE с использованием GCS для хранения/получения файлов. Эти файлы также должны быть прочитаны кодом, который будет запущен на GCE (для этого нужны библиотеки С++, поэтому не работает в GAE).
В производстве, развернутом на фактическом GAE > GCS < GCE, эта настройка работает нормально. Тем не менее, тестирование и разработка локально - это другая история, которую я пытаюсь выяснить.
Как и было рекомендовано, я запускаю GAE dev_appserver с GoogleAppEngineCloudStorageClient для доступа к (имитируемому) GCS. Файлы помещаются в локальный blobstore. Отлично подходит для тестирования GAE.
Поскольку это не GCE SDK для запуска виртуальной машины локально, всякий раз, когда я ссылаюсь на локальный "GCE", это просто моя локальная машина разработки, работающая под Linux. На локальной стороне GCE я просто использую библиотеку boto по умолчанию (https://developers.google.com/storage/docs/gspythonlibrary) с помощью среды выполнения python 2.x для взаимодействия с кодом С++ и получения файлов из GCS. Однако в процессе разработки эти файлы недоступны из boto, поскольку они хранятся в блочном блоке dev_appserver.
Есть ли способ правильно подключить локальные GAE и GCE к локальному GCS?
В настоящее время я отказался от местной части GCS и попытался использовать реальный GCS. Часть GCE с boto проста. Часть GCS также может использовать реальный GCS, используя access_token, поэтому вместо локального blobstore использует реальный GCS:
cloudstorage.common.set_access_token(access_token)
Согласно документам:
access_token: you can get one by run 'gsutil -d ls' and copy the
str after 'Bearer'.
Этот токен работает в течение ограниченного промежутка времени, так что он не идеален. Есть ли способ установить более постоянный access_token?