private async Task <ListFileNamesResponse> InternalListFileNamesAsync( string bucketId, string prefix, string delimiter, string startFileName) { HttpRequestMessage request = BuildJsonRequest( Constants.ApiListFileNamesUrl, HttpMethod.Post, new JsonBuilder() .AddProperty("bucketId", bucketId) .AddProperty("maxFileCount", 1000) .AddPropertyIfNotNull("prefix", prefix) .AddPropertyIfNotNull("delimiter", delimiter) .AddPropertyIfNotNull("startFileName", startFileName) .ToString()); using (request) { HttpResponseMessage responseMessage = await SendRequestAsync(request).ConfigureAwait(false); using (responseMessage) { ListFileNamesResponse response = await responseMessage.Content .TryReadAsJsonAsync <ListFileNamesResponse>() .ConfigureAwait(false); return(response); } } }
public async Task <IList <File> > ListFileNamesAsync( string bucketId, string prefix, string delimiter) { ListFileNamesResponse response = await InternalListFileNamesAsync( bucketId, prefix, delimiter, null) .ConfigureAwait(false); List <File> files = new List <File>(response.Files); while (!string.IsNullOrWhiteSpace(response.NextFileName)) { response = await InternalListFileNamesAsync( bucketId, prefix, delimiter, response.NextFileName) .ConfigureAwait(false); files.AddRange(response.Files); } return(files); }