fix(tvix/castore/object_store): make query pairs object_store opts
We previously called ObjectStoreBlobService::parse_url, which passes an empty list of options when constructing the ObjectStore. This is most likely not what we want. The more reasonable thing to do is pass along the query string (pairs) as options to `object_store::parse_url_opts`, and remove them from the plain URL we pass to object_store itself. Change-Id: Ic2cb1dca2a2980a863165d81baa3323a355cf3fe Reviewed-on: https://cl.tvl.fyi/c/depot/+/11897 Reviewed-by: Connor Brewster <cbrewster@hey.com> Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
This commit is contained in:
parent
d0ef6a50df
commit
bba64d8762
2 changed files with 10 additions and 4 deletions
|
@ -42,10 +42,13 @@ pub async fn from_addr(uri: &str) -> Result<Box<dyn BlobService>, crate::Error>
|
||||||
// parse it back as url, as Url::set_scheme() rejects some of the transitions we want to do.
|
// parse it back as url, as Url::set_scheme() rejects some of the transitions we want to do.
|
||||||
let trimmed_url = {
|
let trimmed_url = {
|
||||||
let s = url.to_string();
|
let s = url.to_string();
|
||||||
Url::parse(s.strip_prefix("objectstore+").unwrap()).unwrap()
|
let mut url = Url::parse(s.strip_prefix("objectstore+").unwrap()).unwrap();
|
||||||
|
// trim the query pairs, they might contain credentials or local settings we don't want to send as-is.
|
||||||
|
url.set_query(None);
|
||||||
|
url
|
||||||
};
|
};
|
||||||
Box::new(
|
Box::new(
|
||||||
ObjectStoreBlobService::parse_url(&trimmed_url)
|
ObjectStoreBlobService::parse_url_opts(&trimmed_url, url.query_pairs())
|
||||||
.map_err(|e| Error::StorageError(e.to_string()))?,
|
.map_err(|e| Error::StorageError(e.to_string()))?,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,10 +75,13 @@ pub async fn from_addr(uri: &str) -> Result<Box<dyn DirectoryService>, crate::Er
|
||||||
// parse it back as url, as Url::set_scheme() rejects some of the transitions we want to do.
|
// parse it back as url, as Url::set_scheme() rejects some of the transitions we want to do.
|
||||||
let trimmed_url = {
|
let trimmed_url = {
|
||||||
let s = url.to_string();
|
let s = url.to_string();
|
||||||
Url::parse(s.strip_prefix("objectstore+").unwrap()).unwrap()
|
let mut url = Url::parse(s.strip_prefix("objectstore+").unwrap()).unwrap();
|
||||||
|
// trim the query pairs, they might contain credentials or local settings we don't want to send as-is.
|
||||||
|
url.set_query(None);
|
||||||
|
url
|
||||||
};
|
};
|
||||||
Box::new(
|
Box::new(
|
||||||
ObjectStoreDirectoryService::parse_url(&trimmed_url)
|
ObjectStoreDirectoryService::parse_url_opts(&trimmed_url, url.query_pairs())
|
||||||
.map_err(|e| Error::StorageError(e.to_string()))?,
|
.map_err(|e| Error::StorageError(e.to_string()))?,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue