@@ -73,13 +73,13 @@ fn is_supported_file_type(mime_type: &str) -> bool {
73
73
pub struct Spec {
74
74
service_account_credential_path : String ,
75
75
binary : bool ,
76
- root_folder_id : String ,
76
+ root_folder_ids : Vec < String > ,
77
77
}
78
78
79
79
struct Executor {
80
80
drive_hub : DriveHub < HttpsConnector < HttpConnector > > ,
81
81
binary : bool ,
82
- root_folder_id : String ,
82
+ root_folder_ids : Vec < String > ,
83
83
}
84
84
85
85
impl Executor {
@@ -102,7 +102,7 @@ impl Executor {
102
102
Ok ( Self {
103
103
drive_hub,
104
104
binary : spec. binary ,
105
- root_folder_id : spec. root_folder_id ,
105
+ root_folder_ids : spec. root_folder_ids ,
106
106
} )
107
107
}
108
108
}
@@ -176,8 +176,10 @@ impl Executor {
176
176
impl SourceExecutor for Executor {
177
177
async fn list_keys ( & self ) -> Result < Vec < KeyValue > > {
178
178
let mut result = IndexSet :: new ( ) ;
179
- self . traverse_folder ( & self . root_folder_id , & mut IndexSet :: new ( ) , & mut result)
180
- . await ?;
179
+ for root_folder_id in & self . root_folder_ids {
180
+ self . traverse_folder ( root_folder_id, & mut IndexSet :: new ( ) , & mut result)
181
+ . await ?;
182
+ }
181
183
Ok ( result. into_iter ( ) . collect ( ) )
182
184
}
183
185
0 commit comments