【问题标题】:IBM Cloud Object Storage, cannot modify object ACL permissionsIBM Cloud Object Storage,无法修改对象 ACL 许可权
【发布时间】:2018-04-24 17:15:30
【问题描述】:

使用适用于 IBM Cloud Object Storage 的 Node.js SDK,我可以使用 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"
}

使用 getObjectAcl 检索 ACL 也会失败并出现同样的问题。

【问题讨论】:

    标签: node.js ibm-cloud storage object-storage


    【解决方案1】:

    身份验证凭据必须具有Manager 角色才能访问和修改现有对象的 ACL。

    检查分配给您的服务标识符的角色。如果您可以创建新对象,您可能拥有Writer 角色而不是Manager

    关于权限模型的更多细节可以在这里找到:https://console.bluemix.net/docs/services/cloud-object-storage/iam/buckets.html#bucket-permissions

    【讨论】:

      猜你喜欢
      • 2018-02-01
      • 2018-05-28
      • 1970-01-01
      • 2015-05-15
      • 2018-08-28
      • 1970-01-01
      • 2020-03-19
      • 1970-01-01
      • 2018-06-05
      相关资源
      最近更新 更多