P2: S3 Multipart Upload support complete
- InitiateMultipartUpload: POST /s3/multipart/:bucket/:key/init - UploadPart: PUT /s3/multipart/:bucket/:key/part - CompleteMultipartUpload: POST /s3/multipart/:bucket/:key/complete - AbortMultipartUpload: DELETE /s3/multipart/:bucket/:key/abort - In-memory upload tracking with once_cell::Lazy - Part files stored in temp dir during upload - Final file assembled on CompleteMultipartUpload - XML responses for all operations Tests: 293 passed, 0 failed
This commit is contained in:
@@ -243,8 +243,14 @@ pub async fn run(port: u16, file: Option<String>) -> anyhow::Result<()> {
|
||||
get(crate::s3::get_object)
|
||||
.head(crate::s3::head_object)
|
||||
.put(crate::s3::put_object)
|
||||
.post(crate::s3::put_object) // POST for uploads (same handler handles multipart detection)
|
||||
.delete(crate::s3::delete_object)
|
||||
)
|
||||
// Multipart upload endpoints
|
||||
.route("/s3/multipart/:bucket/*key/init", post(crate::s3::initiate_multipart_upload))
|
||||
.route("/s3/multipart/:bucket/*key/part", put(crate::s3::upload_part))
|
||||
.route("/s3/multipart/:bucket/*key/complete", post(crate::s3::complete_multipart_upload))
|
||||
.route("/s3/multipart/:bucket/*key/abort", delete(crate::s3::abort_multipart_upload))
|
||||
// Shell and Metrics API endpoints (public for monitoring)
|
||||
.route("/api/v2/shell/status", get(shell_status_handler))
|
||||
.route("/api/v2/metrics", get(metrics_handler))
|
||||
|
||||
Reference in New Issue
Block a user