2014-09-10 2 views
6

Я пытаюсь использовать Google для хранения облака библиотеки Java в Скале в список элементов в ведредоступ к хранилищу Google облака с использованием библиотеки Java получает «403 запрещено»

val credential = new GoogleCredential.Builder() 
    .setTransport(GoogleNetHttpTransport.newTrustedTransport()) 
    .setJsonFactory(JacksonFactory.getDefaultInstance()) 
    .setServiceAccountId("[email protected]") 
    .setServiceAccountScopes(Collections.singleton(StorageScopes.DEVSTORAGE_READ_ONLY)) 
    .setServiceAccountPrivateKeyFromP12File(new File("file.p12")) 
    .build() 
val storage = new Storage.Builder(
    GoogleNetHttpTransport.newTrustedTransport(), 
    JacksonFactory.getDefaultInstance(), 
    credential) 
    .setHttpRequestInitializer(credential) 
    .setApplicationName("app") 
    .build() 
storage.objects.list("bucket").execute 

однако я получил

com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden 
{ 
    "code" : 403, 
    "errors" : [ { 
    "domain" : "global", 
    "message" : "Forbidden", 
    "reason" : "forbidden" 
    } ], 
    "message" : "Forbidden" 
} 

У моей учетной записи электронной почты есть доступ к ведро, я могу получить к ней доступ с помощью gsutil, создав проект в своей учетной записи. Я создал [email protected] в проекте в моем аккаунте, а также о том, как я могу установить разрешение?

ответ

3

Просто подошел к той же проблеме и подумал, что мы нашли решение. Чтобы исправить это, владелец консоли разработчика Google Play, к которой мы стремились, должен был добавить наш адрес электронной почты учетной записи службы в список разрешений Google Play Консоли и предоставить привилегии учетной записи службы «Финансовые отчеты».

+0

Это решение небезопасно! Любой может переделать APK и получить свой ключ P12. Ваша учетная запись Google Could Storage может быть скомпрометирована. Вот вопрос без ответа, который я задал, так как я тоже ищу решение! http://stackoverflow.com/q/28001476/3216207 – Oru

0

Если вы делаете это из экземпляра Google Compute Engine, убедитесь, что вы запускаете этот экземпляр с разрешением включено для учетных записей служб ... см https://cloud.google.com/compute/docs/authentication#using

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

Смежные вопросы