Say mam następujące katalogi i pliki w wiaderku z Amazon S3 (pliki są w pogrubioną):Jak można nierekurencyjnie przeglądać zawartość katalogu za pomocą interfejsu API AWS S3?
- bucketname/
- bucketname/folder1/
- bucketname/folder1/foobar.txt
- bucketname/folder1/Subfolder1/
- bucketname/folder1/Subfolder1/hello.txt
- bucketname/folder1/subfolder2/
- bucketname/folder1/subfolder2/world.txt
- bucketname/folder1/subfolder2/subsubfolder1/
- bucketname/folder1/subfolder2/subsubfolder1/plik.txt
Jak mogę wymienić wszystkich obiektów i natychmiastowe podkatalogów danego katalogu z .NET API AWS S3, bez rekurencyjnie coraz wszystko poniżej tego d Wizualnie? Innymi słowy, w jaki sposób mogę "przeglądać" zawartość katalogu na jednym poziomie?
Na przykład wyobraź sobie, że chcę przejrzeć zawartość bucketname/folder1/
. Co chciałbym zobaczyć to:
- bucketname/folder1/foobar.txt
- bucketname/folder1/Subfolder1/
- bucketname/folder1/subfolder2/
. ..i nic więcej. Nie chcę wyświetlać plików i katalogów w podkatalogach , chcę tylko wyświetlić listę plików i podkatalogów na poziomie folder1
.
Czy istnieje sposób zastosowania filtrów do pojedynczego wywołania interfejsu API AWS, aby nie zwracać wszystkiego i zmuszać mnie do ręcznego analizowania tylko tego, czego potrzebuję?
Odkryłem, że ten kod pozwala mi uzyskać tylko natychmiastowe podkatalogów (zgodnie z przeznaczeniem), ale nie mogę dowiedzieć się, jak to natychmiastowe plików TOO:
var request = new ListObjectsRequest()
.WithBucketName("bucketname")
.WithPrefix(@"folder1/")
.WithDelimiter(@"/");
using (var client = Amazon.AWSClientFactory.CreateAmazonS3Client(accessKey, secretKey))
using (var response = client.ListObjects(request))
{
foreach (var item in response.CommonPrefixes)
{
/* ... */
}
}