P1: AsyncS3Vfs native async implementation using reqwest
Some checks failed
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled

- Replace spawn_blocking + ureq with native async reqwest
- AsyncS3Vfs uses reqwest::Client for HTTP operations
- rusty-s3 for presigned URL generation + XML parsing
- AsyncS3File with async read/write/seek/flush
- reqwest dependency added under async-vfs feature

Tests: 297 passed (293 + 4 new s3_auth tests)
This commit is contained in:
Warren
2026-06-21 22:22:05 +08:00
parent f5074b2ce2
commit 5487ad63a6
2 changed files with 379 additions and 193 deletions

View File

@@ -69,6 +69,7 @@ chacha20poly1305 = "0.10" # Phase 5: ChaCha20-Poly1305 AEAD备用
nix = { version = "0.29", features = ["poll", "fs"] } # Phase 14: OpenSSH风格的poll()和非阻塞I/Ofs feature包含fcntl
rusty-s3 = "0.10" # S3 API 签名AWS Signature V4
ureq = "2.12" # 輕量同步 HTTP 客戶端
reqwest = { version = "0.12", optional = true } # Async HTTP client for AsyncS3Vfs
rayon = "1.10" # Phase 4: 并行加密
url = "2" # URL 解析rusty-s3 依賴)
@@ -85,7 +86,7 @@ tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
default = [] # 默认不启用可选格式
optional-formats = ["unrar", "xz2", "sevenz-rust"] # 争议格式可选启用
smb-server = ["dep:smb-server"] # SMB server feature flag
async-vfs = [] # Async VfsBackend trait (Phase 1 - design only)
async-vfs = ["dep:reqwest"] # Async VfsBackend trait + native async S3
[dev-dependencies]
# tempfile moved to dependencies (needed for archive extraction)