From 067a59e44a7aa278def44b30b2c12a1972a8c7a4 Mon Sep 17 00:00:00 2001 From: Page Asgardius Date: Fri, 25 Nov 2022 14:01:34 -0700 Subject: [PATCH] fix file listing --- .../page/s3manager/ObjectSelect.java | 45 ++++++++++++++++--- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/asgardius/page/s3manager/ObjectSelect.java b/app/src/main/java/asgardius/page/s3manager/ObjectSelect.java index 9361e2f..34219a5 100644 --- a/app/src/main/java/asgardius/page/s3manager/ObjectSelect.java +++ b/app/src/main/java/asgardius/page/s3manager/ObjectSelect.java @@ -104,7 +104,12 @@ public class ObjectSelect extends AppCompatActivity { try { //Your code goes here //List buckets = s3client.listBuckets(); - ListObjectsRequest orequest = new ListObjectsRequest().withBucketName(bucket).withPrefix(prefix).withMaxKeys(8000); + ListObjectsRequest orequest; + if (treelevel == 0) { + orequest = new ListObjectsRequest().withBucketName(bucket).withMaxKeys(8000).withDelimiter("/"); + } else { + orequest = new ListObjectsRequest().withBucketName(bucket).withPrefix(prefix).withMaxKeys(8000).withDelimiter("/"); + } //List objects = (List) s3client.listObjects(bucket, "/"); ObjectListing result = s3client.listObjects(orequest); //System.out.println(objects); @@ -114,8 +119,38 @@ public class ObjectSelect extends AppCompatActivity { // Print bucket names //System.out.println("Buckets:"); //int i=0; - List objects = result.getObjectSummaries(); - for (S3ObjectSummary os : objects) { + //This get folder list + List od = result.getCommonPrefixes(); + for (String os : od) { + filename = os.split("/"); + if (filename.length == treelevel+1) { + object.add(filename[treelevel]+"/"); + } + else { + + } + + //i++; + } + while (result.isTruncated()) { + result = s3client.listNextBatchOfObjects (result); + od = result.getCommonPrefixes(); + for (String os : od) { + filename = os.split("/"); + if (filename.length == treelevel+1) { + object.add(filename[treelevel]+"/"); + } + else { + + } + + //i++; + } + + } + //This get file list + List ob = result.getObjectSummaries(); + for (S3ObjectSummary os : ob) { filename = os.getKey().split("/"); if (filename.length == treelevel+1) { object.add(filename[treelevel]); @@ -128,8 +163,8 @@ public class ObjectSelect extends AppCompatActivity { } while (result.isTruncated()) { result = s3client.listNextBatchOfObjects (result); - objects = result.getObjectSummaries(); - for (S3ObjectSummary os : objects) { + ob = result.getObjectSummaries(); + for (S3ObjectSummary os : ob) { filename = os.getKey().split("/"); if (filename.length == treelevel+1) { object.add(filename[treelevel]);