public async Task <string> GetFileUploadUriBuilderWithSasTokenAsync(int datasetId, string clientIp, CancellationToken cancellationToken = default) { try { if (await _studySpecificDatasetModelService.IsStudySpecific(datasetId)) { var dataset = await _studySpecificDatasetModelService.GetForResourceAndFirewall(datasetId, UserOperation.Study_AddRemove_Dataset); var study = DatasetUtils.GetStudyFromStudySpecificDatasetOrThrow(dataset); var datasetResourceEntry = DatasetUtils.GetStudySpecificStorageAccountResourceEntry(dataset); await _datasetCloudResourceService.EnsureFirewallExistsAsync(study, dataset, clientIp, cancellationToken); _storageService.SetConnectionParameters(datasetResourceEntry.ResourceGroupName, datasetResourceEntry.ResourceName); await _storageService.EnsureContainerExist(DatasetConstants.STUDY_SPECIFIC_DATASET_DEFAULT_CONTAINER, cancellationToken); _azureStorageAccountTokenService.SetConnectionParameters(datasetResourceEntry.ResourceGroupName, datasetResourceEntry.ResourceName); } var uriBuilder = await CreateFileUploadUriBuilder("files", cancellationToken); return(uriBuilder.Uri.ToString()); } catch (Exception ex) { throw new Exception($"Unable to get file list from Storage Account - {ex.Message}", ex); } }