IBM Cloud Object Storage,无法修改对象 ACL 权限
IBM Cloud Object Storage, cannot modify object ACL permissions
使用 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);
})
这是响应中的错误消息 return。
{
"errorMessage": "Access Denied",
"errorType": "Error"
}
使用 getObjectAcl
检索 ACL 也因同样的问题而失败。
身份验证凭据必须具有 Manager
角色才能访问和修改现有对象的 ACL。
检查分配给您的服务标识符的角色。如果您可以创建新对象,您可能拥有 Writer
角色而不是 Manager
。
可以在此处找到有关权限模型的更多详细信息:https://console.bluemix.net/docs/services/cloud-object-storage/iam/buckets.html#bucket-permissions
使用 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);
})
这是响应中的错误消息 return。
{
"errorMessage": "Access Denied",
"errorType": "Error"
}
使用 getObjectAcl
检索 ACL 也因同样的问题而失败。
身份验证凭据必须具有 Manager
角色才能访问和修改现有对象的 ACL。
检查分配给您的服务标识符的角色。如果您可以创建新对象,您可能拥有 Writer
角色而不是 Manager
。
可以在此处找到有关权限模型的更多详细信息:https://console.bluemix.net/docs/services/cloud-object-storage/iam/buckets.html#bucket-permissions