tustvold commented on code in PR #2906: URL: https://github.com/apache/arrow-datafusion/pull/2906#discussion_r922871827
########## datafusion/core/src/datasource/object_store.rs: ########## @@ -105,13 +114,21 @@ impl Default for ObjectStoreRegistry { } impl ObjectStoreRegistry { + /// By default the self detector is None + pub fn new() -> Self { + ObjectStoreRegistry::new_with_detector(None) + } + /// Create the registry that object stores can registered into. /// ['LocalFileSystem'] store is registered in by default to support read local files natively. - pub fn new() -> Self { + pub fn new_with_detector( Review Comment: ```suggestion pub fn new_with_provider( ``` ########## datafusion/core/src/datasource/object_store.rs: ########## @@ -81,10 +81,19 @@ impl std::fmt::Display for ObjectStoreUrl { } } +/// Object store provider can detector an object store based on the url +pub trait ObjectStoreProvider: Send + Sync + 'static { + /// Detector a suitable object store based on its url if possible + /// Return the key and object store + fn get_by_url(&self, url: &Url) -> Option<(String, Arc<dyn ObjectStore>)>; +} + /// Object store registry +#[derive(Clone)] pub struct ObjectStoreRegistry { /// A map from scheme to object store that serve list / read operations for the store - object_stores: RwLock<HashMap<String, Arc<dyn ObjectStore>>>, + object_stores: Arc<RwLock<HashMap<String, Arc<dyn ObjectStore>>>>, + self_detector: Option<Arc<dyn ObjectStoreProvider>>, Review Comment: ```suggestion provider: Option<Arc<dyn ObjectStoreProvider>>, ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: github-unsubscr...@arrow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org