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]