首页 > 解决方案 > 是否有与“aws s3 ls [my_bucket]”等效的 C# 代码?

问题描述

我需要列出我在云中的所有文件。我知道我可以使用 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

标签: c#amazon-web-servicesaws-cli

解决方案


.Net SDK 的文档可以在这里找到。

通常,您正在寻找一个名为 ListObjects 的 S3 服务的操作(HTTP API 链接)。这是在 .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);

推荐阅读