首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >调用COS的GET Service接口报403无权限?

调用COS的GET Service接口报403无权限?

提问于 2017-10-13 09:25:08
回答 5关注 0查看 5.4K

Exception in thread "main" com.qcloud.cos.exception.CosServiceException: Access Denied. (Status Code: 403; Error Code: AccessDenied; Request ID: NTllMDg1NmRfMWViMjM1MGFfM2E5OV8zYmI3YmU=); Trace ID: OGVmYzZiMmQzYjA2OWNhODk0NTRkMTBiOWVmMDAxODc0OWRkZjk0ZDM1NmI1M2E2MTRlY2MzZDhmNmI5MWI1OTY4OGQ5OWY4YWFhNjAzOTkyNDJhZmQyOTk1YWVmOWFlNGM3NmZiOTk0OTQ4NTQyNGUzOGRjOGJkOWExNzY2ZGQ=

回答 5

Jinqn

精选回答

修改于 2017-10-13 12:53:24

贴一下你的 AppId 和计算过程?

看了回复,是 formatUri 不应该写域名,请填 '/'

用户1052274

提问者

发布于 2017-10-13 12:10:22

appid:1254563210

用的你们JAVA SDK里面的计算方法,由于是get service,formatUri 我填的是“service.cos.myqcloud.com”

//我的函数调用

private static final String LIST_BUCKET_URL = "service.cos.myqcloud.com";

public List<Bucket> listBuckets()

{

CosServiceRequest cosServiceRequest = new CosServiceRequest();

CosHttpRequest<CosServiceRequest> request =new CosHttpRequest<CosServiceRequest>(cosServiceRequest);

request.setHttpMethod(HttpMethodName.GET);

request.addHeader(Headers.USER_AGENT, clientConfig.getUserAgent());

request.addHeader(Headers.HOST, LIST_BUCKET_URL);

request.setProtocol(clientConfig.getHttpProtocol());

request.setEndpoint(LIST_BUCKET_URL);

request.setResourcePath(LIST_BUCKET_URL);

return invoke(request, new Unmarshallers.ListBucketsUnmarshaller());

}

//计算的函数(sdk里面的)

public String buildAuthorizationStr(HttpMethodName methodName, String resouce_path,

Map<String, String> headerMap, Map<String, String> paramMap, COSCredentials cred) {

Map<String, String> signHeaders = buildSignHeaders(headerMap);

// 签名中的参数和http 头部 都要进行字符串排序

TreeMap<String, String> sortedSignHeaders = new TreeMap<>();

TreeMap<String, String> sortedParams = new TreeMap<>();

sortedSignHeaders.putAll(signHeaders);

sortedParams.putAll(paramMap);

String qHeaderListStr = buildSignMemberStr(sortedSignHeaders);

String qUrlParamListStr = buildSignMemberStr(sortedParams);

String qKeyTimeStr, qSignTimeStr;

qKeyTimeStr = qSignTimeStr = buildTimeStr();

String signKey = HmacUtils.hmacSha1Hex(cred.getCOSSecretKey(), qKeyTimeStr);

String formatMethod = methodName.toString().toLowerCase();

String formatUri = resouce_path;

String formatParameters = formatMapToStr(sortedParams);

String formatHeaders = formatMapToStr(sortedSignHeaders);

String formatStr = new StringBuilder().append(formatMethod).append(LINE_SEPARATOR)

.append(formatUri).append(LINE_SEPARATOR).append(formatParameters)

.append(LINE_SEPARATOR).append(formatHeaders).append(LINE_SEPARATOR).toString();

if (null ==formatUri||"".equals(formatUri))

{

formatStr = new StringBuilder().append(formatMethod)

.append(LINE_SEPARATOR)

.append(formatParameters)

.append(LINE_SEPARATOR)

.append(formatHeaders)

.append(LINE_SEPARATOR)

.toString();

}

String hashFormatStr = DigestUtils.sha1Hex(formatStr);

String stringToSign = new StringBuilder().append(Q_SIGN_ALGORITHM_VALUE)

.append(LINE_SEPARATOR).append(qSignTimeStr).append(LINE_SEPARATOR)

.append(hashFormatStr).append(LINE_SEPARATOR).toString();

String signature = HmacUtils.hmacSha1Hex(signKey, stringToSign);

String authoriationStr = new StringBuilder().append(Q_SIGN_ALGORITHM_KEY).append("=")

.append(Q_SIGN_ALGORITHM_VALUE).append("&").append(Q_AK).append("=")

.append(cred.getCOSAccessKeyId()).append("&").append(Q_SIGN_TIME).append("=")

.append(qSignTimeStr).append("&").append(Q_KEY_TIME).append("=").append(qKeyTimeStr)

.append("&").append(Q_HEADER_LIST).append("=").append(qHeaderListStr).append("&")

.append(Q_URL_PARAM_LIST).append("=").append(qUrlParamListStr).append("&")

.append(Q_SIGNATURE).append("=").append(signature).toString();

return authoriationStr;

}

用户6073978

修改于 2022-07-10 09:59:10

Qcloud api role not exist, need create role (Status Code: 403; Error Code: AccessDenied; Request ID: NjJjYTlkNTlfMjJiMjU4NjRfODRlZV80NDM0OTA=); Trace ID: OGVmYzZiMmQzYjA2OWNhODk0NTRkMTBiOWVmMDAxODc0OWRkZjk0ZDM1NmI1M2E2MTRlY2MzZDhmNmI5MWI1OWJkOWQxZWEzNjgzMWI0YzQ1NTY5ZjZmMjI2NWFlMWZiMjVjZDMyODExNjJiMTc5NGFmOGU3M2JkZmViNmIxYzc=

和开发者交流更多问题细节吧,去 写回答
相关文章
调用拉取资料接口报40007错误(没权限)问题排查
自定义资料字段是各 App 根据各自业务需要而设置的用户数据。通过自定义资料,各 App 可以将一些额外数据附加到用户资料上,并通过现有接口进行读写操作。
zhangxu
2020/11/30
1.3K2
nginx报403 forbidden错误
403 forbidden错误大家应该都熟悉,文件禁止访问,可能是权限问题,也可能是系统问题
opencode
2022/12/26
2.7K0
java中调用web service接口
1.首先要把AXIS包里的jar文件放到java项目的lib目录下,这里用的是AXIS1_4版本
Java帮帮
2018/08/06
2.3K0
java中调用web service接口
github 提交报403 forbidden的错误解决
创建本地仓库与github的传输 这里假设你的仓库地址为/user/test.git,email地址为youremail@example.com,使用的时候替换成你自己的地址即可。首先注册github帐号,由于你的本地Git仓库和github仓库之间的传输是通过SSH加密的,所以需要使用ssh key: 1)创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果有的话,直接跳过此如下命令,如果没有的话,打开命令行,输入如下
三丰SanFeng
2018/01/16
3.4K0
github 提交报403 forbidden的错误解决
SpringSecurity配置403权限访问页面
1、未配置之前 图片 2、开始配置 2.1 新建一个unauth.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>没有访问的权限</h1> </body> </html> 2.2 在继承WebSecurityConfigurerAdapter的配置类中设置 关键代码: //配置没有权限访问自定义跳转的页面 http.ex
别团等shy哥发育
2023/03/06
1.7K0
SpringSecurity配置403权限访问页面
一文解决Tomcat8.5添加管理员仍然报403无权限
一般而言,在/www/server/tomcat/conf/tomcat-user.xml中加入
glm233
2021/03/02
4400
java调用HTTP接口(Get请求和Post请求)
大家好,又见面了,我是你们的朋友全栈君。 前提: 一个Http接口:http://172.83.38.209:7001/NSRTRegistration/test/add.do?id=8888888&
全栈程序员站长
2022/08/31
4.9K0
java调用HTTP接口(Get请求和Post请求)
绕过 403 Api接口方法
GET /api/v1/user/id 403 /api/v1/user/id.json /api/v1/user/id? /api/v1/user/id/ /api/v2/user/id /api
Khan安全团队
2022/04/02
9560
绕过 403 Api接口方法
Tomcat访问 manager页面 报403的解决办法
外网配置好manager用户以后访问manager/status页面结果提示403错误还有一堆英文错误,第一句话明显标示了是要在context.xml配置东西。 打开webapps下的host-manager和manager,都有一个共同的文件夹META-INF,里面都有context.xml,这个文件的内容是: <Context antiResourceLocking="false" privileged="true" > <Valve className="org.apache.catalina.
小柒2012
2018/04/13
1.6K0
Tomcat访问 manager页面 报403的解决办法
RTSP协议Web无插件直播平台EasyNVR调用登录接口报“密码加解密错误”如何解决?
目前TSINGSEE青犀视频官网内EasyNVR的测试版本已经更新到了4.2版本,大家可以自主下载测试,也有部分用户仍在测试4.1.3版本,如果测试中遇到了问题,可以自行尝试排查,也可以联系我们协助解决。
EasyNVR
2021/02/02
5680
3-AIII--Service绑定服务基于接口调用方法
零、前言 1.上篇中MyBinder暴漏在外,亲自上阵,执行方法。Binder是连接者,能不出面尽量不出面,一个"电话(接口)"搞定的事就不要让他老人家(MyBinder)亲自跑一趟。面向接口,隐藏
张风捷特烈
2018/09/26
6830
【日志服务CLS】应用工作流ASW接入CLS实践分享
本文介绍了通过HTTP请求CLS API的一个具体业务场景的接入实践,由于CLS体量过大,无法接入腾讯云SDK,也在接入过程中遇到了一些问题,特此将流程总结分享,以免重蹈覆辙~ 涉及的代码示例为Go语
用户5963776
2021/05/18
1.7K1
解决jmeter请求不成功或者报403错误
有同学遇到这种情况,jmeter请求一个网站,各项参数填写正确,可是响应是403,同样的请求放在浏览器执行就没有问题;
流柯
2018/08/31
2.7K0
解决jmeter请求不成功或者报403错误
go get 无反应方法
go get -u -v 无反应方法 CMD要用管理员权限运行,否则设置无效 netsh winhttp set proxy proxy-server="https=127.0.0.1:1080" bypass-list="localhost" 查看当前CMD正在使用的代理 netsh winhttp show proxy 清空CMD使用的代理 netsh winhttp reset proxy 还有一种方式 set http_proxy=http://127.0.0.1:1080 set ht
landv
2019/05/17
3.3K0
cos实践权限管控篇--子用户权限分配
限制子用户访问指定存储桶
杜志强
2019/03/08
2.2K0
cos实践权限管控篇--子用户权限分配
RoR: Ruby On Rails 的 Web Service 2 使用before_invocation进行验证调用权限
class BlogApi < ActionWebService::API::Base   api_method :hello_world,   :expects => [{"password" => :string},{"user" => :string}],   :returns => [:string] end
用户3135539
2018/09/12
1.1K0
EasyDSS调用转码服务合成视频的接口时无反应排查
RTMP协议的视频平台EasyDSS除了直播外,还支持点播,转码、上传一体化设计,使音视频资源转码后可立即面向互联网进行发布,在线上教育领域已经成熟落地。在开发功能的更新过程中,EasyDSS内还运用了很多其他层面的开发技巧,我们也会不定期在博客更新,欢迎大家了解测试。
TSINGSEE青犀视频
2021/10/20
7330
接口403问题没这么容易解决
最近一同事反馈在后台保存某业务数据时一直报403,该数据由运营人员在后台录入,然后向后端发送POST请求保存数据;现象是如果内容过长如几十K则报403,如果只输入几个字符则没问题,多方排查无解。
心平气和
2020/09/22
3.3K0
接口403问题没这么容易解决
点击加载更多

相似问题

调用COS的putObject接口报403AccessDenied?

0815

腾讯云cos,报403错误?

2652

在cos 使用 javascript uploadFiles 函数,报 403,求解?

2960

小程序上传图片到cos,报403错误?

22.3K

cos使用restful接口上传文件报ErrOffGoBack?

2383
相关问答用户
腾讯计算机系统有限公司 | 高级工程师
擅长3个领域
腾讯云 | 高级技术咨询工程师擅长4个领域
腾讯云 | 高级工程师擅长2个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档