私はAmazon S3のバケット内の次のディレクトリとファイルがあるとしましょう(ファイルは太字である):AWS S3 APIを使用してディレクトリの内容を非再帰的に参照するにはどうすればよいですか?
- 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/file.txtを私は再帰的にそのD以下のすべてのものを得ることなく、.NET AWS S3のAPIを持つすべてのオブジェクトと指定されたディレクトリの即時サブディレクトリを一覧表示することができますどのよう
ディレクトリですか?言い換えれば、ディレクトリの内容を1つのレベルで「ブラウズ」するにはどうすればよいですか?
たとえば、bucketname/folder1/
の内容を参照したいとします。
- bucketname/folder1の/ foobar.txt
- bucketname/folder1の/ subfolder1/
- bucketname/folder1の/ subfolder2/
:私は何を見たいのは次のようです。 ..何もありません。 サブディレクトリにファイルとディレクトリを表示したくない場合は、ファイルとサブディレクトリをfolder1
レベルにリストします。
すべてを返さないように、1つのAWS API呼び出しにフィルタを適用する方法はありますか?私が必要なものだけを手動で解析するように強制しますか?
私はこのコードは(意図したとおりに)私はちょうど即時のサブディレクトリを取得してみましょうことがわかってきましたが、私はあまりにも即時ファイル含める方法を見つけ出すことはできません。
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)
{
/* ... */
}
}