Как устранить ошибку в Google Storage Client в Symfony? - PullRequest
0 голосов
/ 04 мая 2020

Я занимаюсь разработкой проекта в Symforny 5 и хочу использовать Google Cloud Storage, установить пакет phpleague / flysystem-bundle с поддержкой superbalist / flysystem-google-storage, как указано в документации, создать учетные данные. json в Консоль Google и ведро, но я получаю следующую ошибку:

{
 "error": {
 "code": 401,
 "message": "Invalid Credentials",
 "errors": [
 {
  "message": "Invalid Credentials",
  "domain": "global",
  "reason": "authError",
  "locationType": "header",
  "location": "Authorization"
 }
 ]
}
}
\vendor\google\cloud-core\src\RequestWrapper.php (line 362)

Конфигурации:

flysystem:
storages:
    default.storage:
        adapter: 'local'
        options:
            directory: '%kernel.project_dir%/var/storage/default'

    gcs.storage:
        adapter: 'gcloud'
        options:
            client: 'gcloud_client_service' # The service ID of the Google\Cloud\Storage\StorageClient instance
            bucket: 'test-storage'
            #prefix: 'optional/path/prefix'
            api_url: 'https://storage.googleapis.com'

В service.yml

gcloud_client_service:
    class: Google\Cloud\Storage\StorageClient
    arguments:
        - projectId: 'storage-project'
        - keyFilePath: '../credentials.json'

1 Ответ

0 голосов
/ 04 мая 2020

Ошибка, которую вы получаете, потому что учетные данные установлены неправильно. Если вы хотите использовать файл JSON, способ решить эту проблему - настроить учетные данные внутри вашего кода, используя что-то вроде этого:

putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json');

С другой стороны, на этом this В другой документации вы можете найти другой способ настройки конфигурации соединения для GCS. Также не забудьте добавить служебную учетную запись, которую вы хотите использовать, перейдя к IAM и добавив к этой роли роль «Администратор хранилища».

Оба эти варианта должны работать для вас.

...