Files
harmony/harmony_assets/Cargo.toml
Jean-Gabriel Gill-Couture c24fa9315b feat(harmony_assets): S3 credentials, folder upload, 19 tests
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.
2026-03-25 23:19:58 -04:00

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