我目前正在使用这样的Microsoft.WindowsAzure.Storage.CloudStorageAccount
类生成 SAS 令牌:
var cloudStorageAccount = // create a new CloudStorageAccount
var sharedAccessAccountPolicy = new SharedAccessAccountPolicy
{
Permissions = SharedAccessAccountPermissions.Read | SharedAccessAccountPermissions.Write,
Services = SharedAccessAccountServices.Blob,
ResourceTypes = SharedAccessAccountResourceTypes.Object,
SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1),
Protocols = SharedAccessProtocol.HttpsOnly
};
var token = cloudStorageAccount.GetSharedAccessSignature(sharedAccessAccountPolicy);
但是,这会返回一个?
前面带有 a 的令牌,并且不包括 blob 端点。我正在查看此文档并注意到 SAS 如下所示:
BlobEndpoint=https://storagesample.blob.core.windows.net;
SharedAccessSignature=sv=2015-04-05&sr=b&si=tutorial-policy-635959936145100803&sig=9aCzs76n0E7y5BpEi2GvsSv433BZa22leDOZXX%2BXXIU%3D
这样做的好处是我可以将它用作连接字符串来直接初始化BlockBlobClient
.
如何以上述格式生成我的令牌?我可以解析我自己的并删除?
然后添加BlobEndpoint
和SharedAccessSignature
键,但这是手动工作,将来可能无法正常工作。是否有一种 SDK 方法可以按照 Microsoft 文档中显示的格式创建 SAS?