Skip to content

Commit c5cc92e

Browse files
authored
feat: Bump OpenDAL and remove hyperx (#1591)
Signed-off-by: Xuanwo <github@xuanwo.io>
1 parent f8972dc commit c5cc92e

13 files changed

+77
-188
lines changed

Cargo.lock

+9-30
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+5-5
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ bincode = "1"
3232
blake3 = "1"
3333
byteorder = "1.0"
3434
bytes = "1"
35-
opendal = { version= "0.24.6", optional=true }
36-
reqsign = {version="0.7.3", optional=true}
35+
opendal = { version= "0.26.2", optional=true }
36+
reqsign = {version="0.8.1", optional=true}
3737
chrono = { version = "0.4.23", optional = true }
3838
clap = { version = "4.0.32", features = ["derive", "env", "wrap_help"] }
3939
directories = "4.0.1"
@@ -44,7 +44,6 @@ futures = "0.3"
4444
gzp = { version = "0.11.1", default-features = false, features = ["deflate_rust"] }
4545
http = "0.2"
4646
hyper = { version = "0.14.10", optional = true, features = ["server"] }
47-
hyperx = { version = "1.0", optional = true }
4847
jobserver = "0.1"
4948
jsonwebtoken = { version = "8", optional = true }
5049
lazy_static = "1.0.0"
@@ -66,6 +65,7 @@ serde_json = "1.0"
6665
strip-ansi-escapes = "0.1"
6766
tar = "0.4.36"
6867
tempfile = "3"
68+
mime = "0.3"
6969
tokio = { version = "1", features = ["rt-multi-thread", "io-util", "time", "net", "process", "macros"] }
7070
tokio-serde = "0.8"
7171
tokio-util = { version = "0.7", features = ["codec", "io"] }
@@ -131,9 +131,9 @@ redis = ["url", "opendal/services-redis"]
131131
# Enable features that require unstable features of Nightly Rust.
132132
unstable = []
133133
# Enables distributed support in the sccache client
134-
dist-client = ["flate2", "hyper", "hyperx", "reqwest", "url", "sha2"]
134+
dist-client = ["flate2", "hyper", "reqwest", "url", "sha2"]
135135
# Enables the sccache-dist binary
136-
dist-server = ["crossbeam-utils", "jsonwebtoken", "flate2", "hyperx", "libmount", "nix", "openssl", "reqwest", "rouille", "syslog", "void", "version-compare"]
136+
dist-server = ["crossbeam-utils", "jsonwebtoken", "flate2", "libmount", "nix", "openssl", "reqwest", "rouille", "syslog", "void", "version-compare"]
137137
# Enables dist tests with external requirements
138138
dist-tests = ["dist-client", "dist-server"]
139139

src/bin/sccache-dist/main.rs

-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ extern crate base64;
22
extern crate crossbeam_utils;
33
extern crate env_logger;
44
extern crate flate2;
5-
extern crate hyperx;
65
extern crate jsonwebtoken as jwt;
76

87
#[cfg(not(target_os = "freebsd"))]

src/bin/sccache-dist/token_check.rs

+3-9
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
use crate::jwt;
22
use anyhow::{bail, Context, Result};
33
use sccache::dist::http::{ClientAuthCheck, ClientVisibleMsg};
4-
use sccache::util::RequestExt;
54
use sccache::util::BASE64_URL_SAFE_ENGINE;
65
use std::collections::HashMap;
76
use std::result::Result as StdResult;
@@ -150,13 +149,11 @@ impl MozillaCheck {
150149
// https://github.com/mozilla-iam/auth0-deploy/blob/6889f1dde12b84af50bb4b2e2f00d5e80d5be33f/rules/CIS-Claims-fixups.js#L158-L168
151150
let url = reqwest::Url::parse(MOZ_USERINFO_ENDPOINT)
152151
.expect("Failed to parse MOZ_USERINFO_ENDPOINT");
153-
let header = hyperx::header::Authorization(hyperx::header::Bearer {
154-
token: token.to_owned(),
155-
});
152+
156153
let res = self
157154
.client
158155
.get(url.clone())
159-
.set_header(header)
156+
.bearer_auth(token)
160157
.send()
161158
.context("Failed to make request to mozilla userinfo")?;
162159
let status = res.status();
@@ -289,13 +286,10 @@ impl ProxyTokenCheck {
289286
auth_cache.remove(token);
290287
}
291288
// Make a request to another API, which as a side effect should actually check the token
292-
let header = hyperx::header::Authorization(hyperx::header::Bearer {
293-
token: token.to_owned(),
294-
});
295289
let res = self
296290
.client
297291
.get(&self.url)
298-
.set_header(header)
292+
.bearer_auth(token)
299293
.send()
300294
.context("Failed to make request to proxying url")?;
301295
if !res.status().is_success() {

src/cache/azure.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,21 @@
1616
use opendal::Operator;
1717

1818
use opendal::layers::LoggingLayer;
19-
use opendal::services::azblob;
19+
use opendal::services::Azblob;
2020

2121
use crate::errors::*;
2222

2323
pub struct AzureBlobCache;
2424

2525
impl AzureBlobCache {
2626
pub fn build(connection_string: &str, container: &str, key_prefix: &str) -> Result<Operator> {
27-
let mut builder = azblob::Builder::from_connection_string(connection_string)?;
27+
let mut builder = Azblob::from_connection_string(connection_string)?;
2828
builder.container(container);
2929
builder.root(key_prefix);
3030

31-
let op: Operator = builder.build()?.into();
32-
Ok(op.layer(LoggingLayer::default()))
31+
let op = Operator::create(builder)?
32+
.layer(LoggingLayer::default())
33+
.finish();
34+
Ok(op)
3335
}
3436
}

src/cache/gcs.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
use crate::errors::*;
1717
use opendal::Operator;
18-
use opendal::{layers::LoggingLayer, services::gcs};
18+
use opendal::{layers::LoggingLayer, services::Gcs};
1919
use reqsign::{GoogleBuilder, GoogleToken, GoogleTokenLoad};
2020
use url::Url;
2121

@@ -47,7 +47,7 @@ impl GCSCache {
4747
rw_mode: RWMode,
4848
credential_url: Option<&str>,
4949
) -> Result<Operator> {
50-
let mut builder = gcs::Builder::default();
50+
let mut builder = Gcs::default();
5151
builder.bucket(bucket);
5252
builder.root(key_prefix);
5353

@@ -70,8 +70,10 @@ impl GCSCache {
7070
}
7171
builder.signer(signer_builder.build()?);
7272

73-
let op: Operator = builder.build()?.into();
74-
Ok(op.layer(LoggingLayer::default()))
73+
let op = Operator::create(builder)?
74+
.layer(LoggingLayer::default())
75+
.finish();
76+
Ok(op)
7577
}
7678
}
7779

src/cache/gha.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
// limitations under the License.
1414

1515
use opendal::layers::LoggingLayer;
16-
use opendal::services::ghac;
16+
use opendal::services::Ghac;
1717
use opendal::Operator;
1818

1919
use crate::errors::*;
@@ -24,7 +24,7 @@ pub struct GHACache;
2424

2525
impl GHACache {
2626
pub fn build(version: &str) -> Result<Operator> {
27-
let mut builder = ghac::Builder::default();
27+
let mut builder = Ghac::default();
2828
// This is the prefix of gha cache.
2929
// From user side, cache key will be like `sccache/f/c/b/fcbxxx`
3030
//
@@ -38,7 +38,9 @@ impl GHACache {
3838
builder.version(&format!("sccache-v{VERSION}-{version}"));
3939
}
4040

41-
let op: Operator = builder.build()?.into();
42-
Ok(op.layer(LoggingLayer::default()))
41+
let op = Operator::create(builder)?
42+
.layer(LoggingLayer::default())
43+
.finish();
44+
Ok(op)
4345
}
4446
}

src/cache/memcached.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use std::time::Duration;
1717

1818
use opendal::layers::LoggingLayer;
19-
use opendal::services::memcached;
19+
use opendal::services::Memcached;
2020
use opendal::Operator;
2121

2222
use crate::errors::*;
@@ -26,11 +26,13 @@ pub struct MemcachedCache;
2626

2727
impl MemcachedCache {
2828
pub fn build(url: &str, expiration: u32) -> Result<Operator> {
29-
let mut builder = memcached::Builder::default();
29+
let mut builder = Memcached::default();
3030
builder.endpoint(url);
3131
builder.default_ttl(Duration::from_secs(expiration as u64));
3232

33-
let op: Operator = builder.build()?.into();
34-
Ok(op.layer(LoggingLayer::default()))
33+
let op = Operator::create(builder)?
34+
.layer(LoggingLayer::default())
35+
.finish();
36+
Ok(op)
3537
}
3638
}

src/cache/redis.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
use crate::errors::*;
1717
use opendal::layers::LoggingLayer;
18-
use opendal::services::redis;
18+
use opendal::services::Redis;
1919
use opendal::Operator;
2020
use std::collections::HashMap;
2121
use std::time::Duration;
@@ -29,7 +29,7 @@ impl RedisCache {
2929
pub fn build(url: &str) -> Result<Operator> {
3030
let parsed = Url::parse(url)?;
3131

32-
let mut builder = redis::Builder::default();
32+
let mut builder = Redis::default();
3333
builder.endpoint(parsed.as_str());
3434
builder.username(parsed.username());
3535
builder.password(parsed.password().unwrap_or_default());
@@ -45,7 +45,9 @@ impl RedisCache {
4545
.map(|v| v.parse().unwrap_or_default())
4646
.unwrap_or_default());
4747

48-
let op: Operator = builder.build()?.into();
49-
Ok(op.layer(LoggingLayer::default()))
48+
let op = Operator::create(builder)?
49+
.layer(LoggingLayer::default())
50+
.finish();
51+
Ok(op)
5052
}
5153
}

src/cache/s3.rs

+7-5
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
// limitations under the License.
1212

1313
use opendal::layers::LoggingLayer;
14-
use opendal::services::s3;
14+
use opendal::services::S3;
1515
use opendal::Operator;
1616

1717
use std::convert::TryInto;
@@ -29,21 +29,23 @@ impl S3Cache {
2929
endpoint: Option<&str>,
3030
use_ssl: Option<bool>,
3131
) -> Result<Operator> {
32-
let mut builder = s3::Builder::default();
32+
let mut builder = S3::default();
3333
builder.bucket(bucket);
3434
if let Some(region) = region {
3535
builder.region(region);
3636
}
3737
builder.root(key_prefix);
3838
if no_credentials {
39-
builder.disable_credential_loader();
39+
builder.disable_config_load();
4040
}
4141
if let Some(endpoint) = endpoint {
4242
builder.endpoint(&endpoint_resolver(endpoint, use_ssl)?);
4343
}
4444

45-
let op: Operator = builder.build()?.into();
46-
Ok(op.layer(LoggingLayer::default()))
45+
let op = Operator::create(builder)?
46+
.layer(LoggingLayer::default())
47+
.finish();
48+
Ok(op)
4749
}
4850
}
4951

0 commit comments

Comments
 (0)