腾讯COS – 使用临时密钥下载私有桶对象失败Cos Error Code: AccessDenied【踩坑】
本文最后更新于 387 天前,其中的信息可能已经有所发展或是发生改变。

一、 获取临时密钥的请求里,权限列表里需要添加下载权限。php实例代码:

 

        $config = [
            'url' => self::URL,
            'domain' => self::DOMAIN,
            'proxy' => '',
            'secretId' => $cos['secret_id'], // 固定密钥
            'secretKey' => $cos['secret_key'], // 固定密钥
            'bucket' => $bucket, // 换成你的 bucket
            'region' => $region, // 换成 bucket 所在园区
            'durationSeconds' => self::EXPIRE_TIME, // 密钥有效期
            'allowPrefix' => '*', // 这里改成允许的路径前缀,可以根据自己网站的用户登录态判断允许上传的目录,例子:* 或者 a/* 或者 a.jpg
            // 密钥的权限列表。简单上传和分片需要以下的权限,
            'allowActions' => array (
                // 简单上传
                'name/cos:PutObject',
                'name/cos:PostObject',
                // 分片上传
                'name/cos:InitiateMultipartUpload',
                'name/cos:ListMultipartUploads',
                'name/cos:ListParts',
                'name/cos:UploadPart',
                'name/cos:CompleteMultipartUpload',
                // 下载
                'name/cos:GetObject',
            )
        ];
        // 获取临时密钥,计算签名
        $tempKeys = $this->sts->getTempKeys($config);

 

二、确保用于生成临时密钥的账号在所在的桶有相应的权限

https://console.cloud.tencent.com/cos5/bucket

我踩的坑是因为运维给到我的账号是子账号,但是没有权限。使用该子账号的密钥生成的临时密钥能够进行上传操作,但是下载对象返回403。这就很懵逼了。

提了工单给腾讯云,折腾几回合无果后,客服让我在桶所在的权限控制台页面截图看看,说如果是子账号的话,也是需要将子账号及相应权限添加到对应桶的。

让运维将子账号添加到所在桶,并勾选上传、下载数据权限后,成功下载。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇