Ошибка при загрузке из хранилища Cloud Storage в Google Colab с помощью «gsutil» - PullRequest
0 голосов
/ 08 января 2020

Я обучил модель в экземпляре виртуальной машины Compute Engine в GCP и скопировал веса в корзину облачного хранилища с помощью команды gsutil cp -r.

Затем я опубликовал корзину c и попытался скопировать эти веса в блокнот Google Colab с помощью команды !gsutil cp -r gs://{bucket/folder} ./

Однако я получаю следующую ошибку:

ResumableDownloadException: Ошибка передачи после 23 повторных попыток. Последнее исключение: у анонимного абонента нет доступа к storage.objects.get к {folder / path}

Почему я получаю эту ошибку?

1 Ответ

2 голосов
/ 08 января 2020

Редактировать:

  • В хранилище Cloud Storage отсутствует соответствующая роль Cloud IAM, чтобы сделать ее полностью доступной для публичного чтения. Роль roles/storage.objectViewer предоставляет необходимые разрешения для чтения и перечисления объектов из корзины - назначение ее allUsers сделает ее доступной c.

    Следовательно, согласно документация , это может быть достигнуто с помощью одной gsutil iam команды:

    gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME].

    И затем, в Google Colab вы должны уметь читать (или загружать) объекты из хранилищ Cloud Storage с помощью:

    !gsutil cp -r gs://[BUCKET_NAME]/[FOLDER_NAME] ./


  • Более безопасный подход заключается в вместо того, чтобы создавать все хранилище Cloud Storage publi c, для аутентификации с ним используйте следующий код Python в блокноте:

    from google.colab import auth auth.authenticate_user()

    Затем установите проект ID , который вы используете с командой gcloud; заменив my-project соответственно:

    !gcloud config set project my-project

    И, наконец, выполните команду gsutil; замена bucket и folder:

    !gsutil cp -r gs://[BUCKET_NAME]/[FOLDER_NAME] ./

...