Files
rustfs/crates/ecstore/tests/fixtures/minio/bucket_metadata.blob.hex
T
Zhengchao An a91d9cefc6 test(interop): add real MinIO read and migration parity tests (#4377)
test(interop): real-MinIO read + migration parity, Phase 1/2 (backlog#580)

Capture authentic on-disk fixtures from MinIO RELEASE.2025-07-23 (a bucket with
versioning, object-lock, lifecycle, tagging, quota, a public policy, SSE-S3
encryption, a webhook notification target, and a replication rule, plus inline /
versioned / multipart objects and a delete marker) and prove RustFS reads and
migrates them losslessly:

- filemeta parses_real_minio_object_xlmeta: small inline, two-object-version +
  delete marker, and multipart object xl.meta parse to the expected FileInfo.
- ecstore parses_real_minio_bucket_metadata_blob_without_loss: the MinIO
  .metadata.bin msgpack decodes via the PascalCase field names and
  parse_all_configs loads all ten config types present (policy, lifecycle incl.
  <ExpiryUpdatedAt>, object-lock, versioning, tagging, quota, notification,
  encryption/SSE-S3, replication incl. DeleteMarkerReplication /
  ExistingObjectReplication) without loss.
- ecstore reads_minio_inline_bucket_metadata_via_bitrot: MinIO inlines an object
  body as [HighwayHash256 32B][body]; RustFS's BitrotReader with HighwayHash256S
  verifies and yields the exact blob (the "inline_data 前缀不同" is that prefix).
- ecstore migrates_real_minio_bucket_metadata_end_to_end: on a throwaway 4-drive
  local ECStore, a real MinIO .metadata.bin seeded under .minio.sys is migrated
  into .rustfs.sys byte-identically for every config, exercising the Phase 2
  source adapter (MIGRATING_META_BUCKET = ".minio.sys") through the object layer.

All four run as ordinary crate tests (nextest CI). Phase 4 (MinIO re-reading a
RustFS drive) is documented as out of scope for one-way migration.

Refs rustfs/backlog#580
2026-07-08 01:12:49 +08:00

1 line
8.2 KiB
Plaintext

01000100de0019a44e616d65a7696e7465726f70a743726561746564c70c05000000006a4d22410c8f35c0ab4c6f636b456e61626c6564c2b0506f6c696379436f6e6669674a534f4ec501167b2256657273696f6e223a22323031322d31302d3137222c2253746174656d656e74223a5b7b22456666656374223a22416c6c6f77222c225072696e636970616c223a7b22415753223a5b222a225d7d2c22416374696f6e223a5b2273333a4765744275636b65744c6f636174696f6e222c2273333a4c6973744275636b6574225d2c225265736f75726365223a5b2261726e3a6177733a73333a3a3a696e7465726f70225d7d2c7b22456666656374223a22416c6c6f77222c225072696e636970616c223a7b22415753223a5b222a225d7d2c22416374696f6e223a5b2273333a4765744f626a656374225d2c225265736f75726365223a5b2261726e3a6177733a73333a3a3a696e7465726f702f2a225d7d5d7db54e6f74696669636174696f6e436f6e666967584d4cc4e73c4e6f74696669636174696f6e436f6e66696775726174696f6e20786d6c6e733d22687474703a2f2f73332e616d617a6f6e6177732e636f6d2f646f632f323030362d30332d30312f223e3c5175657565436f6e66696775726174696f6e3e3c49643e3c2f49643e3c4576656e743e73333a4f626a656374437265617465643a2a3c2f4576656e743e3c51756575653e61726e3a6d696e696f3a7371733a3a7072696d6172793a776562686f6f6b3c2f51756575653e3c2f5175657565436f6e66696775726174696f6e3e3c2f4e6f74696669636174696f6e436f6e66696775726174696f6e3eb24c6966656379636c65436f6e666967584d4cc501583c4c6966656379636c65436f6e66696775726174696f6e3e3c52756c653e3c49443e64393669346738396b38683236613935737436303c2f49443e3c5374617475733e456e61626c65643c2f5374617475733e3c46696c7465723e3c5072656669783e3c2f5072656669783e3c2f46696c7465723e3c45787069726174696f6e3e3c446179733e33303c2f446179733e3c2f45787069726174696f6e3e3c4e6f6e63757272656e7456657273696f6e45787069726174696f6e3e3c4e6f6e63757272656e74446179733e373c2f4e6f6e63757272656e74446179733e3c2f4e6f6e63757272656e7456657273696f6e45787069726174696f6e3e3c2f52756c653e3c4578706972795570646174656441743e323032362d30372d30375431353a35383a35372e3333373331355a3c2f4578706972795570646174656441743e3c2f4c6966656379636c65436f6e66696775726174696f6e3eb34f626a6563744c6f636b436f6e666967584d4cc4b83c4f626a6563744c6f636b436f6e66696775726174696f6e3e3c4f626a6563744c6f636b456e61626c65643e456e61626c65643c2f4f626a6563744c6f636b456e61626c65643e3c52756c653e3c44656661756c74526574656e74696f6e3e3c4d6f64653e474f5645524e414e43453c2f4d6f64653e3c446179733e373c2f446179733e3c2f44656661756c74526574656e74696f6e3e3c2f52756c653e3c2f4f626a6563744c6f636b436f6e66696775726174696f6e3eb356657273696f6e696e67436f6e666967584d4cc47b3c56657273696f6e696e67436f6e66696775726174696f6e20786d6c6e733d22687474703a2f2f73332e616d617a6f6e6177732e636f6d2f646f632f323030362d30332d30312f223e3c5374617475733e456e61626c65643c2f5374617475733e3c2f56657273696f6e696e67436f6e66696775726174696f6e3eb3456e6372797074696f6e436f6e666967584d4cc4f03c53657276657253696465456e6372797074696f6e436f6e66696775726174696f6e20786d6c6e733d22687474703a2f2f73332e616d617a6f6e6177732e636f6d2f646f632f323030362d30332d30312f223e3c52756c653e3c4170706c7953657276657253696465456e6372797074696f6e427944656661756c743e3c535345416c676f726974686d3e4145533235363c2f535345416c676f726974686d3e3c2f4170706c7953657276657253696465456e6372797074696f6e427944656661756c743e3c2f52756c653e3c2f53657276657253696465456e6372797074696f6e436f6e66696775726174696f6e3eb054616767696e67436f6e666967584d4cc4803c54616767696e673e3c5461675365743e3c5461673e3c4b65793e7465616d3c2f4b65793e3c56616c75653e73746f726167653c2f56616c75653e3c2f5461673e3c5461673e3c4b65793e656e763c2f4b65793e3c56616c75653e70726f643c2f56616c75653e3c2f5461673e3c2f5461675365743e3c2f54616767696e673eaf51756f7461436f6e6669674a534f4ec4477b2271756f7461223a31303733373431383234302c2273697a65223a302c2272617465223a302c227265717565737473223a302c2271756f746174797065223a2268617264227db45265706c69636174696f6e436f6e666967584d4cc5027f3c5265706c69636174696f6e436f6e66696775726174696f6e3e3c52756c653e3c49443e64393669346d30396b386832766c6469666b61673c2f49443e3c5374617475733e456e61626c65643c2f5374617475733e3c5072696f726974793e313c2f5072696f726974793e3c44656c6574654d61726b65725265706c69636174696f6e3e3c5374617475733e456e61626c65643c2f5374617475733e3c2f44656c6574654d61726b65725265706c69636174696f6e3e3c44656c6574655265706c69636174696f6e3e3c5374617475733e456e61626c65643c2f5374617475733e3c2f44656c6574655265706c69636174696f6e3e3c44657374696e6174696f6e3e3c4275636b65743e61726e3a6d696e696f3a7265706c69636174696f6e3a3a65663538353961662d313230612d343231382d393462352d6265323334373066336336303a696e7465726f702d64723c2f4275636b65743e3c2f44657374696e6174696f6e3e3c536f7572636553656c656374696f6e43726974657269613e3c5265706c6963614d6f64696669636174696f6e733e3c5374617475733e456e61626c65643c2f5374617475733e3c2f5265706c6963614d6f64696669636174696f6e733e3c2f536f7572636553656c656374696f6e43726974657269613e3c46696c7465723e3c5072656669783e3c2f5072656669783e3c2f46696c7465723e3c4578697374696e674f626a6563745265706c69636174696f6e3e3c5374617475733e456e61626c65643c2f5374617475733e3c2f4578697374696e674f626a6563745265706c69636174696f6e3e3c2f52756c653e3c526f6c653e3c2f526f6c653e3c2f5265706c69636174696f6e436f6e66696775726174696f6e3eb74275636b657454617267657473436f6e6669674a534f4ec5029320017202928fc0a787c7c4cd4ad0e4fea39d969029ff12b9872f2d555ace5e5f9e3e6267de9939051ed910cc9a244ff99624e6d67cb0c19f1eec1f8250992f9a095bdab238a1d294aecb456b873d0162ca6aed18ed79844c6ef5a4a357b192d5e9b507a6933cebca12ea2ab2cc9f61ffb864784aaa37009471e13c8b35db6990a30f1cff0416afe1e1da8b275d35f510f0daedd0f18bb58d1495dac6fd2e00d380e52e0356709e0ca450177b1a1d4f5d4b8c4486ce000df06b1d758e1e04b4627d42225e2851576ea79cedf1e02010c44e053eaccac748a7c0ce9168ef99fb12e68a41fce1dc7a92a598a0555a90d50ca86a2c3e7e93e48e209d80cba5d6860ac2159d15780f6cdf8b5728d3407cfab2e77cc6af17fc4592ef1d5c7640a6600782d5215e6038e05de7f589946cb130204c074cf23950c308d81226f3cb8897f478492342cb3c2807e99cd4130507c75a49b15e431f48fea70d8e75128b0857891791348738327e2c82911ef4785f533f44c7b14f4e2fd5e6dd7fd69ebcfa7214db0d936ff66174c329a145aa6c213733091a196fbac46518f1d32a23186fbe5ee497fe02aacb79191e2fe9b741e078be4b117bc6a9be33471d4f2fe1b1f69baba6173bbde1e50bccf8f8218daf0e473377cd11c0be59dd1ebf7e0b1e13865a333d2af5a5d3d834002d9c0df610beb2b7c36ebe3cdecae1a6264a1c61757190425b43e57a51af72ab40b9aa30a70b7670079831dd8dca3864c0a320c7a53c03c593159db1284da8a5cb75263c37df90ac1e7a4259d45804572e557216d7e51ca0501ed4b6df5de62b5e32a79c981763b5d449d3dad02933e45cdc00c44906e85d91a790d4a6a9ec6805c8266693a76bd6fd172deed5e45eedfd67b17b59601c44c6c8a9c3f10cd6e61dd1f41176b4b8a1968467bb4275636b657454617267657473436f6e6669674d6574614a534f4ec5022c7b22582d4d696e696f2d496e7465726e616c2d5365727665722d536964652d456e6372797074696f6e2d4976223a226f704a6a4e4a524163523050433241694d39687a4f2b6669396a5a37537963504a624a463538673657396b3d222c22582d4d696e696f2d496e7465726e616c2d5365727665722d536964652d456e6372797074696f6e2d53332d4b6d732d4b65792d4964223a226d792d6d696e696f2d6b6579222c22582d4d696e696f2d496e7465726e616c2d5365727665722d536964652d456e6372797074696f6e2d53332d4b6d732d5365616c65642d4b6579223a2272573564656946486558456a31494a6d754844314f4967754e4f475355302f4176707278464f37446c4b2f532b6869316d3035524445713570735a6c495441716b4d53577176546842514139716541556f7578782f626a4278697a45366a742f4662593036513d3d222c22582d4d696e696f2d496e7465726e616c2d5365727665722d536964652d456e6372797074696f6e2d53332d5365616c65642d4b6579223a2249414566414e527242456462762f58657944307930614a384c66536b53637748645234366b426d7949567647554352734a724d6d4f557872496e396371666874305979413332777077446e59494b496c3951317148513d3d222c22582d4d696e696f2d496e7465726e616c2d5365727665722d536964652d456e6372797074696f6e2d5365616c2d416c676f726974686d223a224441524576322d484d41432d534841323536227db5506f6c696379436f6e666967557064617465644174c70c05000000006a4d22411cbe42d8b94f626a6563744c6f636b436f6e666967557064617465644174c70c05000000006a4d2241117b72d8b9456e6372797074696f6e436f6e666967557064617465644174c70c05000000006a4d2241210723a0b654616767696e67436f6e666967557064617465644174c70c05000000006a4d2241168a85e8b451756f7461436f6e666967557064617465644174c70c05000000006a4d2241196776b8ba5265706c69636174696f6e436f6e666967557064617465644174c70c05000000006a4d225808da53b0b956657273696f6e696e67436f6e666967557064617465644174c70c05000000006a4d22410f256548b84c6966656379636c65436f6e666967557064617465644174c70c05000000006a4d2241141f4a78bb4e6f74696669636174696f6e436f6e666967557064617465644174c70c05000000006a4d2241249f7148bc4275636b657454617267657473436f6e666967557064617465644174c70c05000000006a4d22580855f8e0d9204275636b657454617267657473436f6e6669674d657461557064617465644174c70c05000000006a4d22580855f8e0