public async Task <ObjectUrl> GetWritableUrlAsync(ObjectUrlRequest urlRequest) { ValidateRequest(urlRequest); return(await this.urlProvider.GetObjectUrlAsync(new AzureObjectUrlRequest { AccessMode = ObjectAccessMode.WriteOnly, BlobName = GetBlobName(urlRequest), ContainerName = storageOptions.ContainerName, ExpirationPeriod = GetExpirationPeriod(urlRequest), TenantId = urlRequest.ExecutionMetadata.Executor.TenantId })); }
private void ValidateRequest(ObjectUrlRequest urlRequest) { if (urlRequest == null) { throw new ArgumentNullException(nameof(urlRequest)); } if (urlRequest.ExecutionMetadata == null) { throw new ArgumentException($"{nameof(urlRequest.ExecutionMetadata)} is required.", nameof(urlRequest)); } if (string.IsNullOrEmpty(urlRequest.ObjectName)) { throw new ArgumentException($"{nameof(urlRequest.ObjectName)} is required.", nameof(urlRequest)); } }
private TimeSpan GetExpirationPeriod(ObjectUrlRequest urlRequest) => (urlRequest.UrlExpirationPeriod ?? urlOptions.DefaultUrlExpirationPeriod);
private string GetBlobName(ObjectUrlRequest urlRequest) => $"{urlRequest.ExecutionMetadata.ExecutionId}/input/{urlRequest.ObjectName}";