私の個人的なAzureストレージBLOBの共有アクセス署名を使用します。 Blobの有効期限を30分に設定し、メソッドGetSasForBlobUsingAccessPolicyを初めて呼び出すと、sasのURLが取得され、同じメソッドを同じBLOBで2回目(30分以内)呼び出すと、異なるsasが取得され、どちらも有効です。なぜ彼らは違いますか?それが期限切れでないなら同じものを得ることは可能ですか? sasが期限切れになり、同じsasを取得すると、有効期限を延長することは可能ですか?有効期限内の異なるSAS
ここに私の関連するメソッドは、次のとおりです。
public void SetBlobContainer(string containerName)
{
string connectionString = string.Format(@"...");
string sharedAccessPolicyName = "my-policy";
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(containerName);
container.CreateIfNotExists();
_blobContainer = container;
if (!_blobContainer.GetPermissions().SharedAccessPolicies.ContainsKey(sharedAccessPolicyName))
{
CreateSharedAccessPolicy(sharedAccessPolicyName);
}
}
public string GetSasForBlob(CloudBlockBlob cloudBlockBlob)
{
string sasToken = cloudBlockBlob.GetSharedAccessSignature(new SharedAccessBlobPolicy()
{
SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(30),
}, "my-policy");
return string.Format(CultureInfo.InvariantCulture, "{0}{1}", cloudBlockBlob.Uri, sasToken);
}