Как включить облачное хранилище Google на локальном сервере разработки?

Я хочу использовать ведро GCS в качестве поддержки для моего blobstore, но я не могу понять, как настроить его на моем сервере разработки.

есть инструкции для этого с помощью консоли разработчиков на живом сервере, но я не могу найти ничего о том, как это сделать на моей локальной машине разработки...

3 ответов


получается, вам не нужно выполнять какие-либо настройки. Я просто предположил, что есть один с определенным именем при загрузке с помощью blobstore, и один был создан для меня автоматически.

кстати, похоже, нигде не задокументировано, как вы можете просматривать файлы в хранилище сервера разработки. Вы можете сделать это, выбрав __GsFileInfo__ сущность в окне просмотра хранилища данных доступ администратора к локальному dev-серверу.


для тех, кто пытается заставить Google Cloud Storage работать вообще со своего локального сервера приложений для разработки Java, я подумал, что еще один ответ будет полезен. Мне удалось заставить мой локальный сервер приложений dev работать с нелокальным облачным хранилищем Google, но только копаться в коде и выяснять, что нужно - по-видимому, нет документации по этому.

целью будет заставить этот блок кода работать локально, который считывает файл из GCS:

    GcsService gcsService =
       GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance());
    int fileSize = (int) gcsService.getMetadata(gcsFilename).getLength();
    ByteBuffer byteBuffer = ByteBuffer.allocate(fileSize);
    GcsInputChannel inputChannel = gcsService.openReadChannel(gcsFilename, 0);
    int readResult = inputChannel.read(byteBuffer);
    byte[] fileBytes = byteBuffer.array();

Если вы попытаетесь сделать это локально, вы не найдете никаких файлов, которые вы загрузили в GCS, потому что он будет пытаться использовать поддельный локальный GCS. К сожалению, я не нашел хорошего способа загрузить на этот локальный GCS, так что это не очень полезно (для него нет проводника файлов, как в облачной версии, и gsutil не работает для него). Поэтому вместо этого мы собираемся заставить его работать с нелокальными (облачными) GCS при запуске на локальном сервере приложений dev.

сделать эта записка, что GcsService создан в COM.гуглить.appengine.инструменты.cloudstorage.GcsServiceFactory этим блоком кода:

if (location == SystemProperty.Environment.Value.Production || hasCustomAccessTokenProvider()) {
  rawGcsService = OauthRawGcsServiceFactory.createOauthRawGcsService(builder.build());
} else if (location == SystemProperty.Environment.Value.Development) {
  rawGcsService = LocalRawGcsServiceFactory.createLocalRawGcsService();

выше говорится, что вам нужно указать пользовательский поставщик маркеров доступа для получения нелокальной службы, что вы делаете, определяя системное свойство. Для приложения App engine вы можете сделать это в appengine-web.xml, как это:

<system-properties>
    <property name="gcs_access_token_provider" value="com.mypackage.MyAccessTokenProvider" />
</system-properties>

Это значение этого свойства является определяемым классом, который реализует com.гуглить.appengine.инструменты.cloudstorage.протокол OAuth.AccessTokenProvider, который предоставляет маркер доступа для вашего приложения. Этот класс должен создать GoogleCredential, который можно использовать для получения маркера доступа, используя инструкции для "Other" для GoogleCredential on https://developers.google.com/identity/protocols/OAuth2ServiceAccount#authorizingrequests.

Теперь он создаст GcsService OAuth, который разговаривает с облаком, и вам не нужно использовать поддельный локальный место хранения.


вам нужно загрузить и интегрировать Клиентская Библиотека Google Cloud Storage для App Engine.

эта библиотека предоставляет вам GcsService который похож на элемент BlobstoreService, Так что вы можете записать в файл, прочитать файл, удалить файл и другие функции из Облако Для Хранения

при использовании кода в среде разработки загруженные файлы сохраняются в и __GsFileInfo__ сущность создается в локальном хранилище данных, которое сохраняет метаданные, прикрепленные к файлу

эта библиотека также работает в интернете, поэтому ваш код будет работать как для разработки, так и для производственных сред.

здесь вы можете найти Начало Работы руководство и полное JavaDoc ссылка