欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

遇到的问题之dotnet腾讯COS生成临时凭证

程序员文章站 2024-03-14 09:56:58
...

情况:腾讯COS上传文件,asp.net项目。开始是这样处理的:前端上传文件到后台,后台再上传到COS,一开始考虑的是统一管理,这时候用的也是永久的id和key。部署的时候因为服务器流量成本增加的原因,需要前端直接上传文件到COS,安全考虑,需要后台动态生成临时**。

官网文档中介绍了两种获取方式:

遇到的问题之dotnet腾讯COS生成临时凭证

方式2有点复杂就没继续看。

主要记录下方式1在使用中遇到的问题。

运行COS STS SDK的demo没问题,然后在asp.net项目中运行的时候,导致整个程序不响应了。

1.COS STS SDK依赖TecentCloudSDK和标准库

遇到的问题之dotnet腾讯COS生成临时凭证

2.在TecentCloudSDK的github首页有对这个问题描述:

遇到的问题之dotnet腾讯COS生成临时凭证

3.然后参考下里面的这篇文章,我们需要使用同步方法。

4.我们看到COS STS SDK的源码就只有一个STSClient.cs,把这个文件里异步方法修改一下:将genCredential()方法中的获取证书如下改成同步

        //GetFederationTokenResponse resp = client.GetFederationToken(req).
            //    ConfigureAwait(false).GetAwaiter().GetResult();

        GetFederationTokenResponse resp = client.GetFederationTokenSync(req);

这样,就可以起作用了。

遇到的问题之dotnet腾讯COS生成临时凭证