alist/server
okatu-loli f1e43cf7d2 feat(s3): Add S3 object archive and thaw task management
This commit introduces comprehensive support for S3 object archive and thaw operations, managed asynchronously through a new task system.

- **S3 Transition Task System**:
  - Adds a new `S3Transition` task configuration, including workers, max retries, and persistence options.
  - Initializes `S3TransitionTaskManager` to handle asynchronous S3 archive/thaw requests.
  - Registers dedicated API routes for monitoring S3 transition tasks.

- **Integrate S3 Archive/Thaw with Other API**:
  - Modifies the `Other` API handler to intercept `archive` and `thaw` methods for S3 storage drivers.
  - Dispatches these operations as `S3TransitionTask` instances to the task manager for background processing.
  - Returns a task ID to the client for tracking the status of the dispatched operation.

- **Refactor `other` package for improved API consistency**:
  - Exports previously internal structs such as `archiveRequest`, `thawRequest`, `objectDescriptor`, `archiveResponse`, `thawResponse`, and `restoreStatus` by making their names public.
  - Makes helper functions like `decodeOtherArgs`, `normalizeStorageClass`, and `normalizeRestoreTier` public.
  - Introduces new constants for various S3 `Other` API methods.
2025-10-15 17:56:04 +08:00
..
common fix: webdav error location (#9266) 2025-08-15 23:10:55 +08:00
ftp feat: enhance permission control and label management (#9215) 2025-07-26 09:51:59 +08:00
handles feat(s3): Add S3 object archive and thaw task management 2025-10-15 17:56:04 +08:00
middlewares fix: session invalid issue (#9301) 2025-08-29 21:20:29 +08:00
s3 refactor(net): pass request header (#8031 close #8008) 2025-03-01 18:35:34 +08:00
sftp feat(sftp-server): do not generate host key until first enabled (#7734) 2024-12-30 22:54:37 +08:00
static fix: static page to limit request method (#7745 close #7667) 2024-12-30 22:49:18 +08:00
webdav fix: resolve webdav decode issue (#9268) 2025-08-16 20:55:17 +08:00
debug.go fix(archive): use another sign for extraction (#7982) 2025-03-01 18:34:33 +08:00
ftp.go feat: enhance permission control and label management (#9215) 2025-07-26 09:51:59 +08:00
router.go feat: implement session management (#9286) 2025-08-25 19:46:38 +08:00
s3.go fix(s3): don't bind s3 port if s3 is not enabled (#6291) 2024-04-03 10:09:48 +08:00
sftp.go feat: enhance permission control and label management (#9215) 2025-07-26 09:51:59 +08:00
webdav.go feat: implement session management (#9286) 2025-08-25 19:46:38 +08:00