mirror of
https://github.com/rustfs/rustfs.git
synced 2026-10-27 06:18:43 +00:00
62b6b6149c
tempfile's Windows `persist` passes the raw paths to MoveFileExW and SetFileAttributesW, bypassing std's extended-length handling. Once `<object>/<rollback>/xl.meta.bkp` reached 260 UTF-16 units every delete of that key failed with 500, while PUT and GET kept working. Add `rustfs_utils::extended_length_path`, which normalizes a path with GetFullPathNameW and prefixes it with `\\?\` (or `\\?\UNC\`), and use it for the staging directory and destination handed to tempfile. Cover the single and batch delete paths with a deep-key regression test and run the helper's Windows assertions in the Windows filesystem workflow. Fixes #8545