forked from matteo/serves3
chore: update dependencies to latest versions
This commit is contained in:
parent
e3aca4fe72
commit
373b141346
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
repos:
|
repos:
|
||||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
rev: v4.5.0
|
rev: v4.6.0
|
||||||
hooks:
|
hooks:
|
||||||
- id: check-yaml
|
- id: check-yaml
|
||||||
name: Check YAML files syntax
|
name: Check YAML files syntax
|
||||||
|
@ -40,7 +40,7 @@ repos:
|
||||||
name: Check Rust code
|
name: Check Rust code
|
||||||
|
|
||||||
- repo: https://github.com/fsfe/reuse-tool.git
|
- repo: https://github.com/fsfe/reuse-tool.git
|
||||||
rev: v3.0.2
|
rev: v4.0.3
|
||||||
hooks:
|
hooks:
|
||||||
- id: reuse
|
- id: reuse
|
||||||
name: Check copyright and license information
|
name: Check copyright and license information
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
21
Cargo.toml
21
Cargo.toml
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "serves3"
|
name = "serves3"
|
||||||
version = "1.1.0"
|
version = "1.1.1"
|
||||||
|
|
||||||
authors = ["Matteo Settenvini <matteo.settenvini@montecristosoftware.eu>"]
|
authors = ["Matteo Settenvini <matteo.settenvini@montecristosoftware.eu>"]
|
||||||
description = "A very simple proxy to browse files from private S3 buckets"
|
description = "A very simple proxy to browse files from private S3 buckets"
|
||||||
|
@ -26,20 +26,21 @@ lazy_static = "1.4"
|
||||||
log = "0.4"
|
log = "0.4"
|
||||||
rocket = "0.5"
|
rocket = "0.5"
|
||||||
rocket_dyn_templates = { version = "0.2.0", features = ["tera"] }
|
rocket_dyn_templates = { version = "0.2.0", features = ["tera"] }
|
||||||
rust-s3 = { version = "0.33", default-features = false, features = [
|
rust-s3 = { version = "0.35", default-features = false, features = [
|
||||||
"tokio-native-tls",
|
"tokio-rustls-tls",
|
||||||
] }
|
] }
|
||||||
serde = { version = "1.0" }
|
serde = "1.0"
|
||||||
tempfile = { version = "3.6" }
|
tempfile = "3.6"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
libc = "0.2"
|
delegate = "0.13"
|
||||||
futures = "0.3"
|
futures = "0.3"
|
||||||
|
libc = "0.2"
|
||||||
regex = "1.10"
|
regex = "1.10"
|
||||||
rstest = "0.21"
|
|
||||||
reqwest = "0.12"
|
reqwest = "0.12"
|
||||||
scraper = "0.19"
|
rstest = "0.22"
|
||||||
|
scraper = "0.20"
|
||||||
test-log = "0.2"
|
test-log = "0.2"
|
||||||
testcontainers = "0.17"
|
testcontainers = "0.23"
|
||||||
testcontainers-modules = { version = "0.5", features = ["minio"] }
|
testcontainers-modules = { version = "0.11", features = ["minio"] }
|
||||||
tokio = { version = "1", features = ["process"] }
|
tokio = { version = "1", features = ["process"] }
|
||||||
|
|
|
@ -64,10 +64,11 @@ allow = [
|
||||||
"Apache-2.0",
|
"Apache-2.0",
|
||||||
"BSD-3-Clause",
|
"BSD-3-Clause",
|
||||||
"CC0-1.0",
|
"CC0-1.0",
|
||||||
|
"EUPL-1.2",
|
||||||
"ISC",
|
"ISC",
|
||||||
"MIT",
|
"MIT",
|
||||||
|
"OpenSSL",
|
||||||
"MPL-2.0",
|
"MPL-2.0",
|
||||||
"Unicode-3.0",
|
|
||||||
"Unicode-DFS-2016",
|
"Unicode-DFS-2016",
|
||||||
]
|
]
|
||||||
# The confidence threshold for detecting a license from license text.
|
# The confidence threshold for detecting a license from license text.
|
||||||
|
|
|
@ -7,10 +7,10 @@ use {anyhow::anyhow, rocket::serde::Deserialize, serde::de::Error};
|
||||||
#[serde(crate = "rocket::serde")]
|
#[serde(crate = "rocket::serde")]
|
||||||
pub struct Settings {
|
pub struct Settings {
|
||||||
#[serde(deserialize_with = "deserialize_s3_bucket")]
|
#[serde(deserialize_with = "deserialize_s3_bucket")]
|
||||||
pub s3_bucket: s3::Bucket,
|
pub s3_bucket: Box<s3::Bucket>,
|
||||||
}
|
}
|
||||||
|
|
||||||
fn deserialize_s3_bucket<'de, D>(deserializer: D) -> Result<s3::Bucket, D::Error>
|
fn deserialize_s3_bucket<'de, D>(deserializer: D) -> Result<Box<s3::Bucket>, D::Error>
|
||||||
where
|
where
|
||||||
D: serde::Deserializer<'de>,
|
D: serde::Deserializer<'de>,
|
||||||
{
|
{
|
||||||
|
@ -31,10 +31,10 @@ pub struct S3Config {
|
||||||
pub secret_access_key: String,
|
pub secret_access_key: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl TryInto<s3::Bucket> for S3Config {
|
impl TryInto<Box<s3::Bucket>> for S3Config {
|
||||||
type Error = anyhow::Error;
|
type Error = anyhow::Error;
|
||||||
|
|
||||||
fn try_into(self) -> Result<s3::Bucket, Self::Error> {
|
fn try_into(self) -> Result<Box<s3::Bucket>, Self::Error> {
|
||||||
let region = s3::Region::Custom {
|
let region = s3::Region::Custom {
|
||||||
region: self.region,
|
region: self.region,
|
||||||
endpoint: self.endpoint,
|
endpoint: self.endpoint,
|
||||||
|
|
|
@ -1,31 +1,47 @@
|
||||||
// SPDX-FileCopyrightText: © Matteo Settenvini <matteo.settenvini@montecristosoftware.eu>
|
// SPDX-FileCopyrightText: © Matteo Settenvini <matteo.settenvini@montecristosoftware.eu>
|
||||||
// SPDX-License-Identifier: EUPL-1.2
|
// SPDX-License-Identifier: EUPL-1.2
|
||||||
|
|
||||||
use {testcontainers::core::WaitFor, testcontainers::Image, testcontainers_modules::minio};
|
use {
|
||||||
|
delegate::delegate,
|
||||||
|
std::borrow::Cow,
|
||||||
|
testcontainers::{
|
||||||
|
core::{ContainerPort, WaitFor},
|
||||||
|
Image,
|
||||||
|
},
|
||||||
|
testcontainers_modules::minio,
|
||||||
|
};
|
||||||
|
|
||||||
const MINIO_IMAGE_TAG: &'static str = "RELEASE.2024-05-28T17-19-04Z";
|
const MINIO_IMAGE_TAG: &'static str = "RELEASE.2024-09-22T00-33-43Z";
|
||||||
|
|
||||||
pub struct MinIO {
|
pub struct MinIO {
|
||||||
inner: minio::MinIO,
|
inner: minio::MinIO,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Image for MinIO {
|
impl Image for MinIO {
|
||||||
type Args = minio::MinIOServerArgs;
|
fn tag(&self) -> &str {
|
||||||
|
MINIO_IMAGE_TAG.into()
|
||||||
fn name(&self) -> String {
|
|
||||||
self.inner.name()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn ready_conditions(&self) -> Vec<WaitFor> {
|
fn ready_conditions(&self) -> Vec<WaitFor> {
|
||||||
vec![WaitFor::message_on_stderr("API:")]
|
vec![WaitFor::message_on_stderr("API:")]
|
||||||
}
|
}
|
||||||
|
|
||||||
fn tag(&self) -> String {
|
delegate! {
|
||||||
MINIO_IMAGE_TAG.into()
|
to self.inner {
|
||||||
}
|
fn name(&self) -> &str;
|
||||||
|
fn expose_ports(&self) -> &[ContainerPort];
|
||||||
fn env_vars(&self) -> Box<dyn Iterator<Item = (&String, &String)> + '_> {
|
fn env_vars(
|
||||||
self.inner.env_vars()
|
&self,
|
||||||
|
) -> impl IntoIterator<Item = (impl Into<Cow<'_, str>>, impl Into<Cow<'_, str>>)>;
|
||||||
|
fn mounts(&self) -> impl IntoIterator<Item = &testcontainers::core::Mount>;
|
||||||
|
fn copy_to_sources(&self) -> impl IntoIterator<Item = &testcontainers::CopyToContainer>;
|
||||||
|
fn entrypoint(&self) -> Option<&str>;
|
||||||
|
fn cmd(&self) -> impl IntoIterator<Item = impl Into<std::borrow::Cow<'_, str>>>;
|
||||||
|
fn exec_after_start(
|
||||||
|
&self,
|
||||||
|
cs: testcontainers::core::ContainerState,
|
||||||
|
) -> Result<Vec<testcontainers::core::ExecCommand>, testcontainers::TestcontainersError>;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,9 +13,9 @@ use {
|
||||||
|
|
||||||
pub struct Test {
|
pub struct Test {
|
||||||
pub base_url: Url,
|
pub base_url: Url,
|
||||||
pub bucket: s3::Bucket,
|
pub bucket: Box<s3::Bucket>,
|
||||||
pub serves3: tokio::process::Child,
|
pub serves3: tokio::process::Child,
|
||||||
pub minio: ContainerAsync<minio::MinIO>,
|
pub _minio: ContainerAsync<minio::MinIO>,
|
||||||
}
|
}
|
||||||
|
|
||||||
const MAXIMUM_SERVES3_INIT_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(5);
|
const MAXIMUM_SERVES3_INIT_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(5);
|
||||||
|
@ -27,11 +27,10 @@ const SECRET_KEY: &'static str = "minioadmin";
|
||||||
|
|
||||||
impl Test {
|
impl Test {
|
||||||
pub async fn new() -> Result<Self> {
|
pub async fn new() -> Result<Self> {
|
||||||
// NOTE: right now there is a bug in bollard
|
// NOTE: this testsuite was setup to work
|
||||||
// that makes testcontainers work in Docker only and
|
// against a recent version of podman,
|
||||||
// not podman (it is not able to fetch exposed ports).
|
// which correctly distinguishes between
|
||||||
// If this test fails make sure you are using docker.
|
// stdout and stderr of the running container.
|
||||||
std::env::remove_var("DOCKER_HOST");
|
|
||||||
|
|
||||||
let image = minio::MinIO::default();
|
let image = minio::MinIO::default();
|
||||||
let container = image.start().await?;
|
let container = image.start().await?;
|
||||||
|
@ -107,7 +106,7 @@ impl Test {
|
||||||
base_url,
|
base_url,
|
||||||
bucket,
|
bucket,
|
||||||
serves3: child,
|
serves3: child,
|
||||||
minio: container,
|
_minio: container,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue