web-dev-qa-db-ja.com

C#Amazon S3フォルダーの下のファイル名を持つすべてのファイルを一覧表示する

C#とAmazon .Net SDKを使用して、以下のようにAmazon S3フォルダー内のすべてのファイルを一覧表示できます。

ListObjectsRequest request = new ListObjectsRequest();           
            request.BucketName = _bucketName; //Amazon Bucket Name
            request.Prefix = _sourceKey; //Amazon S3 Folder path           
            do
            {
                ListObjectsResponse response = _client.ListObjects(request);//_client - AmazonS3Client

出力:

    Folder
    Folder/file1.pdf
    Folder/file2.pdf
    Folder/file3.pdf

しかし、私はこのようなものを達成したかった:望ましい出力:

file1.pdf
file2.pdf
file3.pdf

前もって感謝します

12
Jameel

また、次のc#コードを使用して、ファイル情報を取得することもできます。

    string bucketName = "your bucket";
    AmazonS3Client s3Client = new AmazonS3Client("your access key", "your secret key", cfg);
    S3DirectoryInfo dir = new S3DirectoryInfo(s3Client, bucketName, "your AmazonS3 folder name");
    foreach (IS3FileSystemInfo file in dir.GetFileSystemInfos())
    {
        Console.WriteLine(file.Name);
        Console.WriteLine(file.Extension);
        Console.WriteLine(file.LastWriteTime);
    }

.net 3.5にはAmazon AWSSDK.CoreとAWSSDK.S3バージョン3.1.0.0を使用しています。お役に立てれば幸いです

        AmazonS3Client s3Client = new AmazonS3Client(S3_ACCESS_KEY, S3_SECRET_ACCESS_KEY, S3_REGIAO);
        var lista = s3Client.ListObjectsAsync(S3_BUCKET, $"{S3_SUBDIRETORIO}/{produto}/{produto}.").Result;
        var files = lista.S3Objects.Select(x => x.Key);
        var arquivos = files.Select(x => Path.GetFileName(x)).ToList();
3
user3780549
    AmazonS3Client client = new AmazonS3Client();
    ListObjectsRequest listRequest = new ListObjectsRequest
    {
        BucketName = "your-bucket-name",
        Prefix = "example/path"
    };

    ListObjectsResponse listResponse;
    do
    {
        listResponse = client.ListObjects(listRequest);
        foreach (S3Object obj in listResponse.S3Objects)
        {
            Console.WriteLine(obj.Key);
            Console.WriteLine(" Size - " + obj.Size);
        }

        listRequest.Marker = listResponse.NextMarker;
    } while (listResponse.IsTruncated);

https://docs.aws.Amazon.com/sdkfornet1/latest/apidocs/html/M_Amazon_S3_AmazonS3_ListObjects.htm

1
Cindy
string bucketName = your bucket name;
S3DirectoryInfo dir = new S3DirectoryInfo(client, bucketName, "folder name");
foreach (IS3FileSystemInfo file in dir.GetFiles())
{
    Console.WriteLine(file.Name);
    Console.WriteLine(file.Extension);
    Console.WriteLine(file.LastWriteTime);
}
0
Munesh Gupta