Ведро Google Cloud Storage-> существует дает 403 - PullRequest
4 голосов
/ 01 ноября 2019

Я пытаюсь проверить, существует ли сегмент в Laravel PHP. Я получаю 403 по методу существующие (). Почему?

См. Строку 160 https://github.com/googleapis/google-cloud-php/blob/master/Storage/src/Bucket.php

$storageClient = new \Google\Cloud\Storage\StorageClient([
    'projectId' => env('GCS_PROJECT_ID'),
    'keyFilePath' => storage_path(env('GCS_KEY_FILE')),
]);
$bucket = $storageClient->bucket('mybucketname');

if (!$bucket->exists()) {
    $bucket = $storageClient->createBucket('mybucketname');
}

{ "error": {
    "code": 403,
    "message": "myaccount@api-project-xxxxxxxxx.iam.gserviceaccount.com does not have storage.buckets.get access to downloads.",
    "errors": [ {
        "message": "myaccount@api-project-xxxxxxxx.iam.gserviceaccount.com does not have storage.buckets.get access to mybucketname.",
        "domain": "global",
        "reason": "forbidden"
    } ]
} } 

1 Ответ

1 голос
/ 02 ноября 2019

Ваша служебная учетная запись не имеет разрешения storage.buckets.get. Чтобы проверить, существует ли корзина, а затем создать ее, присвойте roles/storage.admin своей учетной записи службы.

Для справки см .:

...