You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(storage): remove the configured_scheme parameter from storage impls (#2338)
## Which issue does this PR close?
- Closes#2245
- Related #2231
## What changes are included in this PR?
- Remove configured_scheme field from OpenDalStorage::{S3,Azdls}
- Make S3 storage use the scheme in the file paths, allowing for custom
S3-compatible schemes like minio://
- Use `HashMap<Scheme, Arc<OpenDalStorage>>` so aliases share a storage
instance
- Added new unit tests and removed some now-obsolete scheme-mismatch
tests
## Break Change
We are removing a struct field from public types, so this would need to
be release in 0.10.0
```rust
// Before
OpenDalStorageFactory::S3 {
configured_scheme: "s3a".to_string(),
customized_credential_load: None,
}
OpenDalStorageFactory::Azdls {
configured_scheme: AzureStorageScheme::Abfss,
}
// After
OpenDalStorageFactory::S3 { customized_credential_load: None }
OpenDalStorageFactory::Azdls
```
## Are these changes tested?
Beyond the unit tests, I ran these integration tests.
```sh
docker compose -f dev/docker-compose.yaml up -d --wait
# requires unset on any AWS_ env vars
cargo test -p iceberg-integration-tests
cargo test -p iceberg-catalog-hms --test hms_catalog_test
cargo test -p iceberg-catalog-loader
cargo test -p iceberg-storage-opendal --features opendal-s3 --test file_io_s3_test
```
0 commit comments