mag1cfrog commented on code in PR #872:
URL:
https://github.com/apache/arrow-rs-object-store/pull/872#discussion_r4352111368
##########
src/parse.rs:
##########
@@ -122,7 +122,8 @@ impl ObjectStoreScheme {
{
(Self::MicrosoftAzure, strip_bucket().unwrap_or_default())
} else if host.ends_with("amazonaws.com") {
- match host.starts_with("s3") {
+ // Virtual-hosted URLs have a bucket name before the S3
service label.
+ match host.starts_with("s3") && !host.contains(".s3") {
Review Comment:
Thanks for reviewing!
One concern is legacy path-style URLs, for example:
https://s3-us-west-2.amazonaws.com/usgs-lidar-public/IA_FullState/ept.json
With host.starts_with("s3."), this would return
usgs-lidar-public/IA_FullState/ept.json instead of IA_FullState/ept.json. The
current change preserves the existing behavior for this case.
I also noticed that AmazonS3Builder already rejects this format. Since
ObjectStoreScheme::parse can be used independently, should we preserve its
existing handling of legacy URLs here?
Happy to adopt your suggestion if that compatibility is out of scope, or add
a regression test if we want to retain it.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]