开发者社区> 问答> 正文

使用RAM子账号上传文件到BUCKET失败

1)创建一个bucket,名字叫siyuan-pm-test
2)创建一个RAM用户,名字叫siyuan-pm-test
3)创建一自定义的授权策略管理,名字叫oss-siyuan-pm-test-policy
{
"Statement": [

{
  "Action": "oss:*",
  "Effect": "Allow",
  "Resource": "acs:oss:*:*:siyuan-pm-test"
}

],
"Version": "1"
}

PS:用户手册中Resource规则如下,但是我找不到bucket_owner,所以用*代替

Resource指代的是OSS上面的某个具体的资源或者某些资源(支持通配),resource的规则是“acs:oss:{region}:{bucket_owner}:{bucket_name}/{object_name}”。对于所有bucket级别的操作来说不需要最后的斜杠和{object_name},就像这样“acs:oss:{region}:{bucket_owner}:{bucket_name}”。Resource也是一个列表,可以有多个Resource。其中的region字段暂时不做支持,设置为“”。

4)通过JAVA SDK上传一简单的图片文件到bucket,报错如下:

Caught an OSSException, which means your request made it to OSS, but was rejected with an error response for some reason.
Error Message: AccessDenied
Error Code:AccessDenied
Request ID:569E50C37AC3A39417112B6B
Host ID:siyuan-pm-test.oss-cn-shenzhen.aliyuncs.com
2016-1-19 23:11:47 com.aliyun.oss logException
警告: [Server]Unable to execute HTTP request: AccessDenied

[ResponseError]:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>AccessDenied</Code>
<Message>AccessDenied</Message>
<RequestId>569E50C37AC3A39417112B6B</RequestId>
<HostId>siyuan-pm-test.oss-cn-shenzhen.aliyuncs.com</HostId>
</Error>

PS:程序使用阿里云账号AccessKey上传文件成功

展开
收起
风过无声918 2016-01-19 23:21:25 5468 0
2 条回答
写回答
取消 提交回答
  • 阿里云论坛版主,QQ 1978638808

    好吧,我帮你复制过来。你这个问题关闭吧。
    首先您需要创建一条自定义授权策略,假设您的Bucket名称为"myphotos"

    {

    &quot;Version&quot;: &quot;1&quot;,
    &quot;Statement&quot;: [
        {
            &quot;Effect&quot;: &quot;Allow&quot;,
            &quot;Action&quot;: &quot;oss:*&quot;,
            &quot;Resource&quot;: [
                &quot;acs:oss:*:*:myphotos&quot;,
                &quot;acs:oss:*:*:myphotos/*&quot;
            ]
        }
    ]

    }

    然后为此用户添加此条自定义授权策略

    2019-07-17 18:25:30
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载