From 3479990baf73be0889e177a45c943e649a71f977 Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Sun, 18 Aug 2019 14:29:15 -0300 Subject: [PATCH] Listing now works with Digital Ocean --- src/main.rs | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4660558..4a907ff 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,7 +3,7 @@ use std::env; use rusoto_core::Region; use rusoto_credential::StaticProvider; use rusoto_core::request::HttpClient; -use rusoto_s3::ListObjectsV2Request; +use rusoto_s3::ListObjectsRequest; use rusoto_s3::S3; use rusoto_s3::S3Client; @@ -29,14 +29,27 @@ fn main() { region ); - let list_objects_request = ListObjectsV2Request { - bucket: bucket.to_owned(), - ..Default::default() - }; + let mut truncated = Some(true); + let mut start_at = None; + + while truncated.unwrap_or(false) { + let list_objects_request = ListObjectsRequest { + bucket: bucket.to_owned(), + marker: start_at, + ..Default::default() + }; + println!("Request: {:?}", list_objects_request); + + let result = client + .list_objects(list_objects_request) + .sync() + .expect("Can't list contents of buckets"); + truncated = result.is_truncated; + start_at = result.next_marker; - let result = client - .list_objects_v2(list_objects_request) - .sync() - .expect("Can't list contents of buckets"); - println!("List result: {:?}", result); + result.contents + .expect("Didn't get any objects") + .iter() + .for_each(|item| { println!("{}", item.key.as_ref().unwrap()); }); + } }