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

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


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



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