feat: improve legacy metadata and admin compatibility (#2202)

This commit is contained in:
weisd
2026-03-18 21:05:09 +08:00
committed by GitHub
parent 84077adf17
commit b9b7d86ae4
133 changed files with 11707 additions and 1945 deletions
+18
View File
@@ -26,6 +26,8 @@ use time::OffsetDateTime;
pub struct UserIdentity {
pub version: i64,
pub credentials: Credentials,
/// updatedAt (RFC3339), legacy RustFS: update_at. Serialize as updatedAt
#[serde(rename = "updatedAt", alias = "update_at", default, with = "crate::serde_datetime::option")]
pub update_at: Option<OffsetDateTime>,
}
@@ -74,3 +76,19 @@ impl From<Credentials> for UserIdentity {
}
}
}
#[cfg(test)]
mod tests {
use super::UserIdentity;
/// Deserialize UserIdentity from MinIO-style JSON (RFC3339 updatedAt).
#[test]
fn test_user_identity_deserialize_minio_style_rfc3339() {
let minio_style =
r#"{"version":1,"credentials":{"accessKey":"ak","secretKey":"sk12345678"},"updatedAt":"2025-03-07T12:00:00Z"}"#;
let u: UserIdentity = serde_json::from_str(minio_style).expect("deserialize MinIO-style identity");
assert_eq!(u.version, 1);
assert_eq!(u.credentials.access_key, "ak");
assert!(u.update_at.is_some());
}
}