Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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);
        }