Для завершения этой передачи вам потребуется разрешение storage.buckets.setIamPolicy для исходного сегмента.

Я получаю эту ошибку при попытке создать «перенос» для переноса содержимого одной корзины в Google Cloud в другую корзину в Google Cloud под тем же владельцем:

Для завершения этой передачи вам потребуется разрешение storage.buckets.setIamPolicy для исходного сегмента. Попросите администратора корзины предоставить вам необходимое разрешение и повторите попытку.

Я понятия не имею, что мне делать. Я попытался перейти в «Bucket -> Permissions -> Add members -> myemail.com for Storage -> ... Admin», но продолжаю получать «Ошибка обновления политики IAM».

Пожалуйста, помогите, что нужно сделать, чтобы это заработало, чтобы я мог сделать свои файлы общедоступными.

Я использую Node.js, если это помогает.

Если я даже попытаюсь получить фотографию и обойти ее напрямую, я даже не смогу этого сделать: /

const { Storage } = require('@google-cloud/storage')

const storage = new Storage({
  projectId: 'my-bucket'
})

const bucket = storage.bucket('my.bucket')


app.get('/photo/:photo.:ext', (req, res) => {
  const remoteFile = bucket.file(`photo/${req.params.photo}.${req.params.ext}`)
  remoteFile.createReadStream().pipe(res)
})

Тоже не могу:

const opts = {
  includeFiles: true
};

bucket.makePublic(opts, function(err, files) {
  // `err`:
  //    The first error to occur, otherwise null.
  //
  // `files`:
  //    Array of files successfully made public in the bucket.
  console.log(arguments)
});

Невозможно получить устаревшие списки управления доступом для сегмента, в котором включена только политика сегмента. Подробнее см. https://cloud.google.com/storage/docs/bucket-policy-only.

$ gsutil iam ch allUsers:objectViewer gs://my.bucket
ServiceException: 401 Anonymous caller does not have storage.buckets.getIamPolicy access to my.bucket.

person Lokasa Mawati    schedule 04.06.2019    source источник
comment
Ошибка явно указывает на отсутствие разрешения для сегмента источника. Я рекомендую вам подтвердить, что владелец сегмента Source имеет разрешение, storage.objects.getIamPolicy (IAM и администратор - ›Меню IAM -› Фильтр по адресу электронной почты владельца - ›проверьте роль в нем). Затем вы можете проверить, есть ли у ролей это разрешение, storage.objects.getIamPolicy (перейдите в IAM и администратор - ›Роли, а затем найдите конкретную роль -› Нажмите на нее, и появится список назначенных разрешений. Убедитесь, что storage.objects.getIamPolicy - одно из разрешений, перечисленных для роли.   -  person oakinlaja    schedule 05.06.2019
comment
Между тем, чтобы вы могли предоставлять доступ к определенным сегментам, роль вашей учетной записи должна быть Администратор хранилища. Итак, если ваша учетная запись не имеет этой роли, вам понадобится кто-то с этой ролью, чтобы иметь возможность предоставлять доступ или иметь другой контроль над корзиной.   -  person oakinlaja    schedule 05.06.2019


Ответы (2)


Ошибка явно указывает на отсутствие разрешения для сегмента источника. Я рекомендую вам подтвердить, что владелец в исходной корзине имеет Разрешение, storage.objects.getIamPolicy (IAM и администратор -> Меню IAM -> Фильтр по адресу электронной почты владельца -> проверьте роль в нем). Затем вы можете проверить, есть ли у ролей это разрешение, storage.objects.getIamPolicy (перейдите в IAM и администратор -> Роли, а затем найдите конкретную роль -> Нажмите на нее, и появится список назначенных разрешений. Убедитесь, что storage.objects.getIamPolicy - одно из разрешений, перечисленных для роли

Между тем, чтобы вы могли предоставлять доступ к определенным сегментам, роль вашей учетной записи должна быть Администратор хранилища. Итак, если ваша учетная запись не имеет этой роли, вам понадобится кто-то с этой ролью, чтобы иметь возможность предоставлять доступ или иметь другой контроль над корзиной.

person oakinlaja    schedule 11.06.2019

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

Понятия не имею, почему я продолжал получать это сообщение об ошибке, поскольку разрешения не были частью проблемы.

person Kevin    schedule 15.05.2020