遇到的问题之dotnet腾讯COS生成临时凭证
程序员文章站
2024-03-14 09:56:58
...
情况:腾讯COS上传文件,asp.net项目。开始是这样处理的:前端上传文件到后台,后台再上传到COS,一开始考虑的是统一管理,这时候用的也是永久的id和key。部署的时候因为服务器流量成本增加的原因,需要前端直接上传文件到COS,安全考虑,需要后台动态生成临时**。
官网文档中介绍了两种获取方式:
方式2有点复杂就没继续看。
主要记录下方式1在使用中遇到的问题。
运行COS STS SDK的demo没问题,然后在asp.net项目中运行的时候,导致整个程序不响应了。
1.COS STS SDK依赖TecentCloudSDK和标准库
2.在TecentCloudSDK的github首页有对这个问题描述:
3.然后参考下里面的这篇文章,我们需要使用同步方法。
4.我们看到COS STS SDK的源码就只有一个STSClient.cs,把这个文件里异步方法修改一下:将genCredential()方法中的获取证书如下改成同步
//GetFederationTokenResponse resp = client.GetFederationToken(req).
// ConfigureAwait(false).GetAwaiter().GetResult();
GetFederationTokenResponse resp = client.GetFederationTokenSync(req);
这样,就可以起作用了。