Skip to content

Initial HTTP support for Virtual Refs#938

Merged
mpiannucci merged 14 commits intomainfrom
http-virtual
Jun 17, 2025
Merged

Initial HTTP support for Virtual Refs#938
mpiannucci merged 14 commits intomainfrom
http-virtual

Conversation

@mpiannucci
Copy link
Copy Markdown
Collaborator

@mpiannucci mpiannucci commented May 7, 2025

Tested from python, lemme know if we need rust tests too

Closes #526

@mpiannucci mpiannucci marked this pull request as ready for review May 7, 2025 15:37
@mpiannucci mpiannucci requested review from TomNicholas and paraseba May 7, 2025 15:37
Copy link
Copy Markdown
Collaborator

@paraseba paraseba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we document or link to documentation on what the options are?

@mpiannucci
Copy link
Copy Markdown
Collaborator Author

Yeah I can actually make them more strongly typed

@mpiannucci mpiannucci requested a review from paraseba May 7, 2025 20:00
@mpiannucci
Copy link
Copy Markdown
Collaborator Author

I think this is good to merge

@paraseba
Copy link
Copy Markdown
Collaborator

I think this is good to merge

I'll take a look today @mpiannucci

@betolink
Copy link
Copy Markdown

betolink commented Jun 16, 2025

This feature would be amazing to have! we are testing VirtualiZarr integrations and one of the most recurrent questions has been "can we test it with Icechunk?" and our data doesn't allow egress with S3(NASA Earth). thanks for all the work @paraseba @mpiannucci !

.as_ref()
.unwrap_or(&HashMap::new())
.iter()
.fold(builder, |builder, (key, value)| builder.with_config(*key, value));
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mpiannucci can you use the Settings you get as argument to configure the retry attempts this store will do? You can base it on the S3 or GCS examples in this same file

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done


#[typetag::serde(name = "http_object_store_provider")]
impl ObjectStoreBackend for HttpObjectStoreBackend {
fn mk_object_store(
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We would need to override the can_write method to return false.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

Err("in memory storage does not accept credentials".to_string())
}
(ObjectStoreConfig::Http(_), _) => {
Err("http storage does not support credentials".to_string())
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we support basic auth at least? Is there a reason we cannot or simply not implementing in this PR? If so, please add a TODO in the code and a ticket

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I dont want to do it in this PR, Ill add a ticket

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

},
),
(
"https".to_string(),
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess we don't need to add https because http will match..

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@mpiannucci mpiannucci merged commit f75d9e7 into main Jun 17, 2025
11 checks passed
@mpiannucci mpiannucci deleted the http-virtual branch June 17, 2025 13:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for virtual chunks via Http/Https

3 participants