Как включить облачное хранилище 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 ссылка