S3 Driver Fails on Zero-Byte Blob Uploads via Upload Sessions

Problem

The Registry S3 storage driver fails when uploading zero-byte blobs through upload sessions due to attempting to complete S3 multipart uploads with no parts, which violates S3's API requirements.

Steps to Reproduce

  1. Configure Container Registry with S3 storage backend
  2. Initiate a blob upload session: POST /v2/{name}/blobs/uploads/
  3. Complete the upload with zero bytes: PUT /v2/{name}/blobs/uploads/{uuid}?digest=sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Result: Upload fails with S3 MalformedXML error

Edited by Suleimi Ahmed