我在.Net中使用以下页面提供的API所生成的临时密钥无法操作我的bucket。 API为NuGet中安装的Tencent Cloud API 3.0 SDK for .NET

获取云COS临时密钥:

https://console.cloud.tencent.com/api/explorer?Product=ms&Version=2018-04-08&Action=CreateCosSecKeyInstance&SignVersion=

尝试了使用在上述页面在线调用API生成的临时ID和Key,无法用于以下在线工具的上传文件操作:

对象存储 - Object基本操作 - Put Object:

https://console.cloud.tencent.com/api/explorer?Product=cos&Version=2018-11-26&Action=PutObject&SignVersion=

而且我发现该API提供的临时密钥方法似乎存在bug:

这是我生成临时密钥的方法:

Credential cred = new Credential

{

SecretId = secretId,

SecretKey = secretKey

};

ClientProfile clientProfile = new ClientProfile();

HttpProfile httpProfile = new HttpProfile();

httpProfile.Endpoint = credentialServer;

clientProfile.HttpProfile = httpProfile;

MsClient client = new MsClient(cred, region, clientProfile);

CreateCosSecKeyInstanceRequest req = new CreateCosSecKeyInstanceRequest();

string strParams = "{\"CosRegion\":\"" + region + "\",\"Duration\":" + expireTime + "}";

req = CreateCosSecKeyInstanceRequest.FromJsonString<CreateCosSecKeyInstanceRequest>(strParams);

CreateCosSecKeyInstanceResponse resp = client.CreateCosSecKeyInstance(req).

ConfigureAwait(false).GetAwaiter().GetResult();

string result = AbstractModel.ToJsonString(resp);

return new JsonResult(result);

以上加粗部分的 resp中,CosBucket总是为ms-shield,resp.CosRegion总是为ap-guangzhou,ExpireTime为3600 or 3601 or 3602, resp.CosPrefix总是为pctool/1300222705/20190916/

无论我的传入参数是什么,上述几个属性值为常量。请问这是by design吗?

请问.Net后端该如何正确的生成临时密钥?

用户6238272用户6238272提问于
zqfan回答于
推荐

cos有自己的密钥系统,应该是在控制台上,访问管理,API密钥,项目密钥那里,或者去看看cos的文档是如何说明的吧。

你通过ms接口创建cos临时密钥,也许的确会被限制一些,这个需要ms这个产品的人回答下比较好。

生成临时密钥和哪个SDK无关,可以直接在线调用也可以生成,通过API Explorer生成的.net sdk代码只能在控制台应用中使用。

回答过的其他问题

文本翻译api不能用吗?

推荐

可能是你本地的php环境配置的证书路径有问题,参考这里看看吧https://github.com/tencentcloud/tencentcloud-sdk-php#%E8%AF%81%E4%B9%A6%E9%97%AE%E9%A2%98

【建议】【API】使用API创建子网的时候允许指定已有路由表?

推荐

控制台使用的是新的接口,批量创建子网,https://cloud.tencent.com/document/product/215/31960,可以指定路由表。terraform开发的时候是基于api2.0开发的,还没有这个接口,因此暂时无法使用

 如何使用人工智能合成人声?

智能语音服务昨天刚上线了语音合成的功能,可以了解一下:https://cloud.tencent.com/document/api/441/18086

请问有创建项目的sdk吗?

推荐

这是api2.0的接口,使用对应的sdk,代码托管在http://github.com/qcloudapi

调用云解析API提示4100鉴权失败?

推荐
UTF8,并且注意要大写,例如%8E而不是%8e,官方文档中应该有提到这些注意事项的 image.png ... 展开详请

机器翻译报错AuthFailure.SignatureFailure?

推荐
你这签名没有按照文档中要求的一步一步来啊:https://cloud.tencent.com/document/product/213/15693 1、拼接的时候是原文,但你却做了urlencode,而且还缺了应该在最前面的POST 2、signature总体上只需要做一次url...... 展开详请

扫码关注云+社区

领取腾讯云代金券