Skip to content

AsterDrive v0.3.0-beta.2

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 21 Jun 16:06
Immutable release. Only release title and notes can be modified.
v0.3.0-beta.2
8a3341e

Release Highlights

AsterDrive 0.3.0-beta.2 是 0.3.0 beta 线的稳定性与错误处理打磨版本,主线是连接器抽象的健壮性收口与 OneDrive 授权流程修正。 全面将 panic 路径(expect/unwrap)替换为 Result 错误传播,统一存储连接测试的诊断返回(从成功响应 payload 迁移到 error metadata);OneDrive 授权改为"先保存凭据再授权",draft 策略连接测试支持复用已保存凭据;各 service 缓存逻辑下沉到独立 cache 子模块。

  • 错误处理健壮性收口expect/unwrap 全面替换为 Result,multipart 读取失败映射 BAD_REQUEST,connector 注册缺失改为显式错误而非静默回退 local
  • 存储连接测试 API 契约统一 — 诊断信息从成功响应 payload 迁移到 ApiErrorInfo.diagnostic,前端从 ApiError.diagnostic 读取
  • OneDrive 授权流程修正 — 授权请求只发 provider type,要求先保存凭据变更才能发起授权
  • draft 策略凭据复用 — 连接测试可选 policy_id,空白凭据字段复用已保存凭据(S3 / Azure Blob / Tencent COS)
  • cache 模块抽取 — 各 service 缓存逻辑下沉到独立 cache 子模块

Added

  • draft 策略凭据复用
    • 连接测试端点新增可选 policy_id,S3 / Azure Blob / Tencent COS 在凭据字段为空时复用已保存凭据,管理员改配置时无需重输敏感信息

Changed

  • 错误处理重构

    • CORS、加密、shutdown handler、CLI 序列化、时间/时区运算、内存 mail sender mutex 中毒等 panic 路径替换为 Result 传播与日志降级
    • signal handler 安装失败不再 panic;archive preview / offline download / WOPI discovery client 构建失败由静默 fallback 改为错误传播
    • connector_or_local 静默回退 local 改为 connector_or_registered 显式报错;故意不可达分支加 #[allow(clippy::expect_used)] 标注不变式
  • 存储连接测试 API 契约统一

    • 移除 StoragePolicyProbeResultprobe_connection* 端点,改用标准错误响应携带 ApiErrorInfo.diagnostic
    • 新增 ApiErrorDiagnostic schema,对外暴露 message / kind,api_code / retryable 内部保留
    • 前端连接测试从 ApiError.diagnostic 读取失败原因
  • OneDrive 授权流程

    • 授权请求不再携带 draft Microsoft Graph 凭据,仅发送 provider type,后端复用已保存 application_config
    • 凭据变更后必须先保存才能发起授权
  • 连接器 descriptor 配置

    • driver-type 条件分支改为显式 input struct(ObjectStorageConnectorDescriptorInput / ObjectStorageFieldDescriptorInput
    • descriptor UI 逻辑从集中函数下沉到各 connector;multipart ETag 要求改为显式 input 字段
  • cache 模块抽取

    • admin / auth / folder / passkey / preview link / share stream / stream ticket / workspace scope / WebDAV auth / WebDAV path resolver 的缓存操作下沉到独立 cache 子模块,补全作用域与失效测试
    • share_stream marker 编码移入 cache 模块,reserve_count_marker / store_count_marker 改为 Result 传播
  • 依赖升级

    • actix-web 4.13.0 → 4.14.0、actix-multipart 0.7.2 → 0.8.0、actix-http 3.12.1 → 3.13.0、actix-multipart-derive 0.7.0 → 0.8.0
    • derive_more 统一为 2.1.1、foldhash 0.2.0、impl-more 0.3.1;parse-size 替换为 bytesize 2.4.0
    • 前端 @typescript/native-preview 升至 7.0.0-dev.20260621.1

Fixed

  • multipart 上传读取失败(UploadFieldReadFailed / AvatarUploadReadFailed)映射为 BAD_REQUEST,此前为 500
  • offline download 循环在 shutdown 信号下不再静默中断,改为返回 transient 错误
  • WOPI discovery client 构建失败不再回退 reqwest::Client::new,改为传播错误

Statistics

  • 114 files changed, 3665 insertions(+), 1347 deletions(-)
  • 4 commits

Download

Platform Architecture Archive
Linux x86_64 aster_drive_v0.3.0-beta.2_linux_x86_64.tar.gz
Linux x86 aster_drive_v0.3.0-beta.2_linux_i686.tar.gz
Linux ARM64 aster_drive_v0.3.0-beta.2_linux_aarch64.tar.gz
Linux ARMv7 aster_drive_v0.3.0-beta.2_linux_armv7.tar.gz
Windows x86_64 aster_drive_v0.3.0-beta.2_windows_x86_64.exe.zip
Windows x86 aster_drive_v0.3.0-beta.2_windows_i686.exe.zip
Windows ARM64 aster_drive_v0.3.0-beta.2_windows_arm64.zip
macOS x86_64 aster_drive_v0.3.0-beta.2_macos_x86_64.tar.gz
macOS ARM64 aster_drive_v0.3.0-beta.2_macos_aarch64.tar.gz

Extract with tar -xzf (Linux/macOS) or unzip (Windows).

Checksums: checksums.txt

Verify signatures

All release archives are signed with Sigstore cosign. To verify:

# Download checksums + signature + certificate
wget https://github.com/AsterCommunity/AsterDrive/releases/download/v0.3.0-beta.2/{checksums.txt,checksums.txt.sig,checksums.txt.pem}

# Verify signature
cosign verify-blob checksums.txt \
  --signature checksums.txt.sig \
  --certificate checksums.txt.pem \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com \
  --certificate-identity-regexp 'github.com/AptS-1547/AsterDrive'

# Verify archive integrity
sha256sum -c checksums.txt