// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 /// /// List the objects in an Amazon Simple Storage Service (Amazon S3) bucket. /// The example was created using the AWS SDK for .NET version 3.7 and /// .NET Core 5.0. /// namespace S3Demo.Storage { // snippet-start:[S3.dotNET.ListObjectsExample] using System; using System.Threading.Tasks; using Amazon.Runtime; using Amazon.S3; using Amazon.S3.Model; public class ListObjects { public static async Task Listingobjects(string bucketName, BasicAWSCredentials credentials, AmazonS3Config conf) { //string bucketName = "doc-example-bucket"; IAmazonS3 client; using (client = new AmazonS3Client(credentials, conf)) { Console.WriteLine($"Listing objects stored in the bucket {bucketName}."); await ListingObjectsAsync(client, bucketName); } } /// /// Uses the client object to get a list of the objects in the Amazon /// S3 bucket in the bucketName parameter. /// /// The initialized S3 client obect used to call /// the ListObjectsAsync method. /// The bucket name for which you want to /// retrieve a list of objects. public static async Task ListingObjectsAsync(IAmazonS3 client, string bucketName) { try { ListObjectsV2Request request = new() { BucketName = bucketName, MaxKeys = 5, }; var response = new ListObjectsV2Response(); do { response = await client.ListObjectsV2Async(request); response.S3Objects .ForEach(obj => Console.WriteLine($"{obj.Key,-35}{obj.LastModified.ToShortDateString(),10}{obj.Size,10}")); // If the response is truncated, set the request ContinuationToken // from the NextContinuationToken property of the response. request.ContinuationToken = response.NextContinuationToken; } while (response.IsTruncated); } catch (AmazonS3Exception ex) { Console.WriteLine($"Error encountered on server. Message:'{ex.Message}' getting list of objects."); } } } // snippet-end:[S3.dotNET.ListObjectsExample] }