Amazon S3に複数のファイルが保存されています。私たちは、与えられたルートフォルダファイルとフォルダのすべてのキーを再帰的に印刷すると、正常に動作しません。
ObjectListing listing = s3.listObjects(bucketName, prefix);
List<S3ObjectSummary> summaries = listing.getObjectSummaries();
while (listing.isTruncated()) {
listing = s3.listNextBatchOfObjects (listing);
summaries.addAll (listing.getObjectSummaries());
}
ためのすべてのファイルとフォルダを反復するために、次のコードを使用している
は、ルートフォルダが1000個のファイルと10個のフォルダを持っていると仮定します。フォルダの1つに100個のサブフォルダがあり、それぞれに500個のファイルがあります。
上記のプログラムは正常に動作し、すべてのファイルを一覧表示し、すべてのファイルをトラバースします。
問題は、すべてのサブフォルダのキーを印刷していないことです。
興味深いのは、それが問題になる可能性がどのような最初のサブフォルダ
例
Root Folder: Emp
Folder Under Root folder: FolderA, FolderB, FolderC
Sub-folder under FolderA: 0, 1, 2, 3, 4, 5 ... 100
Each 0 or 1 or 2...has 500 files each
を印刷しているのですか? AWSまたはFolderの制限は数値ではありませんか、または論理的な問題はありますか?
上記のコードを使用した場合。
FolderA/0 /はFolderA/1などのキーとして来ている.... FolderA/10は
感謝を付属していません。
S3にはフォルダのようなものはありません。 Webコンソールから擬似フォルダを作成することができます。実際には、そのキーを持つ空のオブジェクトが作成されます。これはおそらく、期待どおりに機能しているいくつかのフォルダに対して表示されます。 –
はい..すべての空のオブジェクト、つまりサブフォルダの下のフォルダが必要です。 – Kathire
コードはhttp://stackoverflow.com/questions/8027265/how-to-list-all-aws-s3-objects-in-a-bucket-using-javaと同じように見えます。コードをステップ実行して、正しくループしていることを確認します。また、結果を再確認してください:正しいかもしれませんが、間違っていると思います。 –