GrantSASAccess와 RevokeSASAccess의 두 가지 기능이 있습니다. 나는 blob에 파일을 업로드 할 수 있도록 (SAS를 생성하여) 액세스 권한을 부여합니다. 사용자가 "Ok, do done!"이라고 선언하면 나는 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 초가 걸릴 수 있습니다." –