使用 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
我将我的文件存储在 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