使用 C# .NET 从 Amazon AWS S3 云中获取文件名不带扩展名的文件

Getting file from Amazon AWS S3 cloud with file name without extension using C# .NET

我将我的文件存储在 Amazon S3 云中,并希望使用 C# .NET 获取它们。如果我使用完整的文件名作为检索文件的密钥,我在获取文件时没有问题。

keyName = "myfile.jpg";
client.GetObject(new GetObjectRequest { BucketName = bucketName, Key = keyName });

现在,如果我不知道图像的文件扩展名怎么办,它可能是 "myfile.jpg"、"myfile.png" 或 "myfile.gif"。我只有 "myfile" 作为我的唯一信息。

有一件事是肯定的,该文件将只是图像。

有没有办法只通过文件名获取对象,("myfile")? 或者在 Amazon S3 中,我们可以将文件的密钥更改为 "myFile" 或任何我们想要的?

如有任何帮助,我们将不胜感激。

谢谢!

您有一个 API 来获取文件名称列表(S3 密钥),您有另一个 API 来获取文件(S3 密钥)。

此代码为您提供了 S3 存储桶中所有键(对象)的列表。

// 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);

取自http://docs.aws.amazon.com/sdkfornet/latest/apidocs/Index.html