Альтернативы JSON учетные данные файла? - PullRequest
1 голос
/ 26 января 2020

Мой Java внутренний сервер должен выгружать файлы в Google Cloud Storage (GCS).

Сейчас я просто запускаю

public void store(MultipartFile multipartFile) throws IOException {

    Storage storage = StorageOptions.getDefaultInstance().getService();

    storage.create(
            BlobInfo.newBuilder(
                    BUCKET_NAME,
                    Objects.requireNonNull(multipartFile.getOriginalFilename()))
                    .build(),
            multipartFile.getBytes()
    );
}

Установив GOOGLE_APPLICATION_CREDENTIALS=$PROJECT_DIR$/project-1234-abcdefg.json в моей среде .

Однако это усложняет мою настройку развертывания. Я не знаю, как бы я go сделал этот файл доступным для моей службы.

Есть ли другой способ получить доступ к GCS для моей учетной записи службы?


Справочная информация

Я развертываю свой сервер на Heroku в виде скомпилированного файла JAR, и я не знаю, как сделать учетные данные доступными для моего сервера во время развертывания.

1 Ответ

0 голосов
/ 26 января 2020

Вам необходим аккаунт Google для доступа к GCS, как персональному, так и техническому. Техническая - это учетная запись службы.

Однако у вас есть другое решение, но его не так просто реализовать. Я написал статью о защите продукта без сервера с помощью Cloud Endpoint with и API Key . Здесь вашим безсерверным решением может быть Cloud Storage. Но это подразумевает, что вы вызываете GCS с REST API, а не с библиотекой java, не очень весело. Это также подразумевает дополнительные затраты на хостинг и время обработки Cloud Endpoint.

Примечание: вы можете улучшить авторизацию от API Key до Firebase auth или что-то еще, если хотите. Проверьте возможности проверки подлинности Cloud Endpoint

Примечание 2. Google работает над другим механизмом проверки подлинности, но я не знаю, на каком этапе находятся разработки, и если это планируется на 2020 год. В любом случае ваше ограничение известно и устранено Google

...