[ 
https://issues.apache.org/jira/browse/HDDS-16053?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gargi Jaiswal updated HDDS-16053:
---------------------------------
    Description: 
{{*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}
Work is split into two phases:
 * *Phase 1 —* Core API: {{{}ETag{}}}, {{{}ObjectSize{}}}, 
{{{}StorageClass{}}}, and {{ObjectParts}} part count only.
S3 Gateway only; no OM changes.
 * *Phase 2 —* Full {*}{{ObjectParts}}{*}: per-part {{Parts[]}} (PartNumber, 
Size) and pagination ({{{}MaxParts{}}}, markers, {{{}IsTruncated{}}}). Requires 
OM/metadata support for completed multipart objects.

h2. Out of scope for this epic:

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 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.

AWS S3 documentation: 
[https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html]

  was:
{{*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 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.



AWS S3 documentation: 
https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html


> Support 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
>            Priority: Major
>
> {{*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}
> Work is split into two phases:
>  * *Phase 1 —* Core API: {{{}ETag{}}}, {{{}ObjectSize{}}}, 
> {{{}StorageClass{}}}, and {{ObjectParts}} part count only.
> S3 Gateway only; no OM changes.
>  * *Phase 2 —* Full {*}{{ObjectParts}}{*}: per-part {{Parts[]}} (PartNumber, 
> Size) and pagination ({{{}MaxParts{}}}, markers, {{{}IsTruncated{}}}). 
> Requires OM/metadata support for completed multipart objects.
> h2. Out of scope for this epic:
> 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 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.
> AWS S3 documentation: 
> [https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObjectAttributes.html]



--
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