如何列出我的存储桶中对象的公共前缀?
如果我使用ListObjects
,我可以检索对象。我可以看到有一个名为2017的常见前缀:
using (var client = new AmazonS3Client())
{
var listObjectsResponse = client.ListObjects(new ListObjectsRequest
{
BucketName = bucket,
Prefix = "2",
Delimiter = "",
});
// Prints: 2017/11/08/<omitted>.json
Console.WriteLine(listObjectsResponse.S3Objects.First().Key);
}
但是,如果我设置Delimiter
,则不会返回任何内容:
using (var client = new AmazonS3Client())
{
var listObjectsResponse = client.ListObjects(new ListObjectsRequest
{
BucketName = bucket,
Prefix = "2",
Delimiter = "/",
});
// Prints: 0
Console.WriteLine(listObjectsResponse.S3Objects.Count);
}
如何获得2017年之类的公共前缀?
我已经尝试查看文档,它只是说使用前缀和分隔符,但这不起作用。
答案 0 :(得分:1)
我在CommonPrefixes
上看到ListObjectsResponse
属性。
using (var client = new AmazonS3Client())
{
var listObjectsResponse = client.ListObjects(new ListObjectsRequest
{
BucketName = bucket,
Prefix = "2",
Delimiter = "/",
});
// Prints: 2017
Console.WriteLine(listObjectsResponse.CommonPrefixes[0]);
}