Есть ли код C #, чтобы сделать эквивалент "aws s3 ls [my_bucket]"? - PullRequest
0 голосов
/ 13 июня 2019

Мне нужно перечислить все файлы, которые у меня есть в моем облаке. Я знаю, что могу сделать это с помощью aws-cli, используя код "aws s3 ls [my bucket]". Но как я могу сделать то же самое, используя код C #?

Я видел документацию AWS, но единственное, что я обнаружил, это загрузка файлов, а не то, что я хочу.

Некоторые ссылки, которые я использовал: https://docs.aws.amazon.com/AmazonS3/latest/dev/RetrievingObjectUsingNetSDK.html https://docs.aws.amazon.com/AmazonS3/latest/dev/HLuploadFileDotNet.html

1 Ответ

1 голос
/ 14 июня 2019

Документацию по .Net SDK можно найти здесь .

В общем, вы ищете операцию под названием ListObjects службы S3 ( HTTP API link ). Это реализовано в .Net SDK в пространстве имен Amazon.S3 в классе с именем AmazonS3Client с методом ListObjectsResponse ListObjects(ListObjectsRequest).

Вот пример его использования по последней ссылке:

// Create a client
AmazonS3Client client = new AmazonS3Client();

// List all objects
ListObjectsRequest listRequest = new ListObjectsRequest
{
    BucketName = "SampleBucket",
};

ListObjectsResponse listResponse;
do
{
    // Get a list of objects
    listResponse = client.ListObjects(listRequest);
    foreach (S3Object obj in listResponse.S3Objects)
    {
        Console.WriteLine("Object - " + obj.Key);
        Console.WriteLine(" Size - " + obj.Size);
        Console.WriteLine(" LastModified - " + obj.LastModified);
        Console.WriteLine(" Storage class - " + obj.StorageClass);
    }

    // Set the marker property
    listRequest.Marker = listResponse.NextMarker;
} while (listResponse.IsTruncated);
...