文档中心>对象存储>SDK 文档>.NET(C#) SDK>.NET(C#)SDK 常见问题

.NET(C#)SDK 常见问题

最近更新时间:2025-03-14 19:03:21

我的收藏

.NET SDK 是否支持下载对象到内存?

支持,详情请参见下载对象到内存

.NET SDK 预签名URL过期时间如何设置?

根据文档 生成预签名 URL 时如何设置 URL 的过期时间。
预签名的过期问题通过签名时间和密钥过期时间两项控制,两个时间不同时由最近过期时间决定。
AK 密钥过期时间在 QCloudCredentialProvider 初始化时决定,例如 durationSecond 变量的控制:
public class DownloadObject
{
private CosXml cosXml;
private void InitCosXml()
{
string region = Environment.GetEnvironmentVariable("COS_REGION");
CosXmlConfig config = new CosXmlConfig.Builder()
.SetRegion(region)
.Build();
string secretId = Environment.GetEnvironmentVariable("SECRET_ID");
string secretKey = Environment.GetEnvironmentVariable("SECRET_KEY");
long durationSecond = 600; // AK 密钥过期时间
QCloudCredentialProvider qCloudCredentialProvider = new DefaultQCloudCredentialProvider(secretId, secretKey, durationSecond);
this.cosXml = new CosXmlServer(config, qCloudCredentialProvider);
}
}
Sign 签名的过期时间由 PreSignatureStruct 对象的 signDurationSecond 成员控制决定:
public void GetPreSignDownloadUrl()
{
try
{
PreSignatureStruct preSignatureStruct = new PreSignatureStruct();
//在此省略其余设置
preSignatureStruct.signDurationSecond = 600; // Sign 签名的过期时间
string requestSignURL = cosXml.GenerateSignURL(preSignatureStruct);
Console.WriteLine(requestSignURL);
}
catch (COSXML.CosException.CosClientException clientEx)
{
Console.WriteLine("CosClientException: " + clientEx);
}
catch (COSXML.CosException.CosServerException serverEx)
{
Console.WriteLine("CosServerException: " + serverEx.GetInfo());
}
}