IBM Cloud Object Storage не может изменять разрешения ACL для объектов - PullRequest
0 голосов
/ 24 апреля 2018

Используя Node.js SDK для IBM Cloud Object Storage, я могу успешно создавать новые объекты с параметром public-read ACL.

var params = {Bucket: 'bucket', Key: 'key', Body: stream, ACL: 'public-read`};
s3.upload(params, function(err, data) {
  console.log(err, data);
});

Доступ к файлам возможен без аутентификации после загрузки.

Однако после загрузки файла попытка обновить разрешения ACL для преобразования файла private в public-read завершается неудачей с ошибками Access Denied.

var params = {Bucket: 'bucket', Key: 'key', Body: stream, ACL: 'public-read`};
s3.putObjectAcl(params, function(err, data) {
  console.log(err, data);
})

Это сообщение об ошибке, возвращаемое в ответе.

{
    "errorMessage": "Access Denied",
    "errorType": "Error"
}

Получение ACL с использованием getObjectAcl также не удается с той же проблемой.

1 Ответ

0 голосов
/ 24 апреля 2018

Учетные данные для аутентификации должны иметь роль Manager для доступа и изменения списков ACL для существующих объектов.

Проверьте роль, назначенную вашему сервисному идентификатору. Если вы можете создавать новые объекты, у вас может быть роль Writer, а не Manager.

Более подробную информацию о модели разрешений можно найти здесь: https://console.bluemix.net/docs/services/cloud-object-storage/iam/buckets.html#bucket-permissions

...