/// <summary> /// Returns an enumerable that iterates through all versions of the files contained in one bucket in alphabetical order by file name /// and by reverse of date/time uploaded for versions of files with the same name. /// </summary> /// <param name="request">The <see cref="ListFileVersionRequest"/> to send.</param> /// <param name="cacheTTL">An absolute cache expiration time to live (TTL) relative to now.</param> /// <exception cref="AuthenticationException">Thrown when authentication fails.</exception> /// <exception cref="ApiException">Thrown when an error occurs during client operation.</exception> async Task <IEnumerable <FileItem> > IStorageFiles.GetEnumerableAsync (ListFileVersionRequest request, TimeSpan cacheTTL) { var enumerable = new FileVersionEnumerable(_client, _logger, request, cacheTTL, _cancellationToken) as IEnumerable <FileItem>; return(await Task.FromResult(enumerable).ConfigureAwait(false)); }
/// <summary> /// List versions of the files contained in one bucket in alphabetical order by file name /// and by reverse of date/time uploaded for versions of files with the same name. /// </summary> /// <param name="bucketId">The bucket id to look for file names in.</param> /// <exception cref="AuthenticationException">Thrown when authentication fails.</exception> /// <exception cref="ApiException">Thrown when an error occurs during client operation.</exception> async Task <IApiResults <ListFileVersionResponse> > IStorageFiles.ListVersionsAsync (string bucketId) { var request = new ListFileVersionRequest(bucketId); return(await _client.ListFileVersionsAsync(request, _cancellationToken)); }
public async Task GetFileVersionEnumerable() { var request = new ListFileVersionRequest(BucketId); var enumerable = await Storage.Files.GetEnumerableAsync(request); Assert.Equal(typeof(FileVersionEnumerable), enumerable.GetType()); Assert.Equal(_fileSystem.AllFiles.Count(), enumerable.ToList().Count()); }
/// <summary> /// Deletes all files contained in bucket. /// </summary> /// <param name="request">The <see cref="ListFileVersionRequest"/> to send.</param> /// <param name="dop">The degree of parallelism. Use 0 to default to <see cref="Environment.ProcessorCount"/>.</param> /// <exception cref="AuthenticationException">Thrown when authentication fails.</exception> /// <exception cref="ApiException">Thrown when an error occurs during client operation.</exception> async Task <IList <DeleteFileVersionResponse> > IStorageFiles.DeleteAllAsync (ListFileVersionRequest request, int dop) { var response = new List <DeleteFileVersionResponse>(); var files = await Files.GetEnumerableAsync(request); await files.ForEachAsync(dop, async filepath => { var deleteRequest = new DeleteFileVersionRequest(filepath.FileId, filepath.FileName); var results = await _client.DeleteFileVersionAsync(deleteRequest, _cancellationToken); if (results.IsSuccessStatusCode) { _logger.LogInformation($"Successfully deleted '{filepath.FileName}' file from '{request.BucketId}' bucket id"); response.Add(results.Response); } else { _logger.LogWarning($"Failed deleting '{filepath.FileName}' file with error: {results.Error.Message}"); } }, _cancellationToken); return(response); }
/// <summary> /// List versions of the files contained in one bucket in alphabetical order by file name /// and by reverse of date/time uploaded for versions of files with the same name. /// </summary> /// <param name="request">The <see cref="ListFileVersionRequest"/> to send.</param> /// <param name="cacheTTL">An absolute cache expiration time to live (TTL) relative to now.</param> /// <exception cref="AuthenticationException">Thrown when authentication fails.</exception> /// <exception cref="ApiException">Thrown when an error occurs during client operation.</exception> async Task <IApiResults <ListFileVersionResponse> > IStorageFiles.ListVersionsAsync (ListFileVersionRequest request, TimeSpan cacheTTL) { return(await _client.ListFileVersionsAsync(request, cacheTTL, _cancellationToken)); }
/// <summary> /// Initializes a new instance of the <see cref="FileVersionEnumerable"/> class. /// </summary> public FileVersionEnumerable(IApiClient client, ILogger logger, ListFileVersionRequest request, TimeSpan cacheTTL, CancellationToken cancellationToken) : base(client, logger, cacheTTL, cancellationToken) { _request = request; }