GrantSASAccessとRevokeSASAccessの2つの機能があります。私はblobにファイルをアップロードするためのアクセス権(SASを生成することによって)を許可します。ユーザーが「OK」を宣言すると、完了です! SAS Accessを取り消します。しかし... SASを一瞬解除しても、ユーザーは引き続きファイルをアップロードすることができます。 3〜5秒後にのみ適切にブロックされます。なぜそうなのですか?これを防ぐ方法は?Azureコンテナ:SetPermissionsは数秒後に動作します
public async Task GrantSASAccess(CloudBlobContainer container)
{
BlobContainerPermissions permissions = await container.GetPermissionsAsync();
permissions.SharedAccessPolicies[container.Name] = new SharedAccessBlobPolicy()
{
Permissions = SharedAccessBlobPermissions.Write,
SharedAccessExpiryTime = _dateTimeService.GetUtcNow().AddMinutes(Core.ConfigurationHelper.GetSASExpirationTime())
};
await container.SetPermissionsAsync(permissions);
}
public async Task RevokeSASAccess(StorageCredentials storageCredentials, string containerName, string policyName)
{
CloudBlobContainer container = GetContainerReference(storageCredentials, containerName);
BlobContainerPermissions permissions = container.GetPermissions();
permissions.SharedAccessPolicies.Remove(containerName);
await container.SetPermissionsAsync(permissions);
}
SetPermissionsAsyncは即座に実行されますが、数秒後にエフェクトが表示されます。 Michal氏が書いた通り "コンテナの変更がSASポリシーに反映されるまでに30秒かかることがあります" –