Fix S3Store to actually wire access_key_id/secret_access_key from config into the AWS SDK credential provider. Add force_path_style for custom endpoints (Ceph, MinIO). Add store_folder() for recursive directory upload. New CLI command: upload-folder with --public-read/private ACL, env var fallback for credentials, content-type auto-detection, progress bar. Fix single-file upload --public-read default (was always true, now false). Add 19 tests: Asset path computation, LocalStore fetch/cache/404/checksum with httptest mocks, S3 key extraction, URL generation for custom/AWS endpoints.
59 lines
1.3 KiB
TOML
59 lines
1.3 KiB
TOML
[package]
|
|
name = "harmony_assets"
|
|
edition = "2024"
|
|
version.workspace = true
|
|
readme.workspace = true
|
|
license.workspace = true
|
|
|
|
[lib]
|
|
name = "harmony_assets"
|
|
|
|
[[bin]]
|
|
name = "harmony_assets"
|
|
path = "src/cli/mod.rs"
|
|
required-features = ["cli"]
|
|
|
|
[features]
|
|
default = ["blake3"]
|
|
sha256 = ["dep:sha2"]
|
|
blake3 = ["dep:blake3"]
|
|
s3 = [
|
|
"dep:aws-sdk-s3",
|
|
"dep:aws-config",
|
|
]
|
|
cli = [
|
|
"dep:clap",
|
|
"dep:indicatif",
|
|
"dep:inquire",
|
|
"dep:env_logger",
|
|
]
|
|
reqwest = ["dep:reqwest"]
|
|
|
|
[dependencies]
|
|
log.workspace = true
|
|
tokio.workspace = true
|
|
thiserror.workspace = true
|
|
directories.workspace = true
|
|
sha2 = { version = "0.10", optional = true }
|
|
blake3 = { version = "1.5", optional = true }
|
|
reqwest = { version = "0.12", optional = true, default-features = false, features = ["stream", "rustls-tls"] }
|
|
futures-util.workspace = true
|
|
async-trait.workspace = true
|
|
url.workspace = true
|
|
|
|
# CLI only
|
|
clap = { version = "4.5", features = ["derive", "env"], optional = true }
|
|
indicatif = { version = "0.18", optional = true }
|
|
inquire = { version = "0.7", optional = true }
|
|
env_logger = { version = "0.11", optional = true }
|
|
|
|
# S3 only
|
|
aws-sdk-s3 = { version = "1", optional = true }
|
|
aws-config = { version = "1", optional = true }
|
|
|
|
[dev-dependencies]
|
|
tempfile.workspace = true
|
|
httptest = "0.16"
|
|
pretty_assertions.workspace = true
|
|
tokio-test.workspace = true
|