对象存储 js+java报403咋解决?

  • 回答 (2)
  • 关注 (0)
  • 查看 (484)

我使用前台js上传文件,后台生成上传签名

js使用

var cos = new COS({
    // 必选参数
    getAuthorization: function (options, callback) {
        $.get('http://example.com/server/auth.php', {
            method: options.Method,
            pathname: '/' + options.Key,
        }, function (Authorization) {
            callback({
                Authorization: Authorization
                // XCosSecurityToken: data.XCosSecurityToken, // 如果是临时密钥计算出来的签名,需要提供 XCosSecurityToken
            });
        });
    }
});

后台使用

COSCredentials cred = new BasicCOSCredentials("AKIDfEpGanLleOythMeX9osp6EOSRGve6xOh",

"Roury11qTzJUjX8OTOBrVEm1MjSLFzY1");

COSSigner signer = new COSSigner();

// 设置过期时间为1个小时

Date expiredTime = new Date(System.currentTimeMillis() + 3600L * 1000L);

// 要签名的 key, 生成的签名只能用于对应此 key 的上传

String key = "/111";

String sign = signer.buildAuthorizationStr(HttpMethodName.PUT, key, cred, expiredTime);

结果报错403 (Forbidden)

但如果js使用

var cos = new COS({
    SecretId: 'AKIDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    SecretKey: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
});

这样的是可以的

然后我如果直接从后台上传文件也是可以的

请问这个咋解决呢

用户2972589用户2972589提问于
用户2972589回答于

提工单解决了:key从前台传到后台生成签名时,前面要加/。

比如,js里面key为123,则后台生成签名为/123

还是感谢回答

沈唁

Swoole · PHP工程师 (已认证)

沈唁志博主;Swoole微课程讲师/开发组成员;Hyperf Contributor;Github@sy-records;新浪微博@写Bug的路飞修改于

403是没权限,看一下你对应的配置是否开启

比如cos桶的读写权限,公读私有写等

另外403也有好几种错误原因可以查看一下https://cloud.tencent.com/document/product/436/7730

ExpiredToken

签名串已过期

403 Forbidden

AccessDenied

签名或者权限不正确,拒绝访问

403 Forbidden

AccountProblem

您的账号拒绝了此次操作

403 Forbidden

InvaildAccessKeyId

AccessKey不存在

403 Forbidden

InvalidObjectState

请求内容与Object属性相冲突

403 Forbidden

InvalidSecurity

签名串不合法

403 Forbidden

RequestTimeTooSkewed

请求时间超过权限有效时间

403 Forbidden

SignatureDoesNotMatch

提供的签名不符合规则

403 Forbidden

所属标签

可能回答问题的人

  • 云存储

    腾讯云 · 云存储 (已认证)

    16 粉丝0 提问0 回答
  • galenye

    腾讯 · 工程师 (已认证)

    5 粉丝0 提问38 回答
  • Jinqn

    腾讯 · 高级工程师 (已认证)

    19 粉丝0 提问60 回答
  • 腾讯云技术服务团队

    腾讯云 · 技术服务团队 (已认证)

    25 粉丝0 提问4 回答
  • 宝哥@devops运维

    腾讯 · 高级云计算工程师 (已认证)

    71 粉丝0 提问0 回答
  • elliswu

    腾讯计算机系统有限公司 · 高级工程师 (已认证)

    5 粉丝0 提问0 回答

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励