Gargi Jaiswal created HDDS-16053:
------------------------------------

             Summary: Implement GetObjectAttributes in Ozone S3 Gateway 
                 Key: HDDS-16053
                 URL: https://issues.apache.org/jira/browse/HDDS-16053
             Project: Apache Ozone
          Issue Type: Task
          Components: S3
            Reporter: Gargi Jaiswal
            Assignee: Gargi Jaiswal


{{*GetObjectAttributes*}} is an AWS S3 API that returns selected object 
metadata without downloading the object body. It is similar to 
{*}{{HeadObject}}{*}, but the client chooses which fields to return via the 
{color:#00875a}{{x-amz-object-attributes}}{color} header. The request looks 
like:
 
{code:java}
 GET /{bucket}/{key}?attributes
 x-amz-object-attributes: ETag,ObjectSize,StorageClass,ObjectParts {code}
Changes required:
 * API : {{GET /\{bucket}/\{key}?attributes}}
 * Required header: {{x-amz-object-attributes}}
 * Supported attributes:
 ** {{ETag}} — object ETag (MD5 or composite hash for multipart objects)
 ** {{ObjectSize}} — object size in bytes
 ** {{StorageClass}} — storage/replication class
 ** {{ObjectParts}} — for multipart objects,
 * Response format: XML {{GetObjectAttributesResponse}} with {{Last-Modified}} 
response header
 * Error handling: {{404 NoSuchKey}} when the object does not exist, {{403 
AccessDenied}} on authorization failure, {{400 InvalidArgument}} when the 
attributes header is missing or invalid
 * Audit and metrics: {{GET_OBJECT_ATTRIBUTES}} audit action and 
success/failure metrics

h3. What this ticket does not support

The following are intentionally out of scope :
 * {{*Checksum*}} *attribute* *—* Ozone does not currently store non-MD5 
checksums (CRC32, CRC32C, SHA-256, etc.) in key metadata. If requseted, this 
field is omitted from the response rather than returning an error. 
Full support requires a follow-on change to compute and persist checksums on 
_PutObject/UploadPart._
 * *Object versioning ({{{}versionId{}}})* — S3 object versiooning is not 
implemented in Ozone. The {{versionId}} query parameter is not supported. Once 
[this|https://issues.apache.org/jira/browse/HDDS-15728] feature is merged we 
can support it.
 * *SSE-C encryption headers* — Server-Side Encryption with Customer Keys is 
not implemented in Ozone and is not handled by this API.
 * *Per-part details for completed multipart objects* — For completed MPU 
objects, only {{PartsCount}} is returned. Per-part sizes and checksums are not 
stored in OM metadata for completed uploads.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to