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

Krishna Kumar Asawa reassigned HDDS-7713:
-----------------------------------------

    Assignee: Tejaskriya Madhan

> listKeys in S3G serves a prefix path as a key too but it is redundant
> ---------------------------------------------------------------------
>
>                 Key: HDDS-7713
>                 URL: https://issues.apache.org/jira/browse/HDDS-7713
>             Project: Apache Ozone
>          Issue Type: Bug
>          Components: S3
>    Affects Versions: 1.3.0
>         Environment: Version: Our forked version based ozone-1.3.0 branch. 
> commit hash is 
> https://github.com/apache/ozone/commit/9c61a8aa497ab96c014ad3bb7b1ee4f731ebfaf8
> FSO-enabled bucket
>            Reporter: Kohei Sugihara
>            Assignee: Tejaskriya Madhan
>            Priority: Major
>
> The listKeys API in S3G returns a prefix for the requested path as a key. But 
> it is not S3-compatible behavior and I think this is not necessary. I'm 
> sharing some simple examples.
> h2. Case #1: listKeys for a specific prefix (aws s3 ls s3://bucket/path/) has 
> an unnecessary entry
> Result
> {quote}                           PRE .git/
>                            PRE autom4te.cache/
>                            PRE config/
>                            PRE contrib/
>                            PRE doc/
>                            PRE src/
>                            PRE testing/
> *2022-10-20 15:51:38          0*
> 2022-10-20 15:51:40        635 .gitignore
> 2022-10-20 15:51:40       1470 .travis.yml
> 2022-10-20 15:51:40          0 AUTHORS
> 2022-10-20 15:51:40      14585 COPYRIGHT
> 2022-10-20 15:51:40         43 META
> 2022-10-20 15:51:40      25602 Makefile
> 2022-10-20 15:51:40        506 Makefile.am
> 2022-10-20 15:51:40      25554 Makefile.in
> 2022-10-20 15:51:40      12274 NEWS
> 2022-10-20 15:51:40       1215 README.md
> 2022-10-20 15:51:40      44649 aclocal.m4
> 2022-10-20 15:51:40         27 bootstrap
> 2022-10-20 15:51:40      62978 config.log
> 2022-10-20 15:51:40      36114 config.status
> 2022-10-20 15:51:40     248813 configure
> 2022-10-20 15:51:41      16382 configure.ac
> 2022-10-20 15:51:43        659 travis-build.sh
> 2022-10-20 15:51:43       1406 travis-test.sh{quote}
>  
> XML
> {quote}<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
> <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/";>
>   <Name>bucket</Name>
>   <Prefix>path/</Prefix>
>   <Marker></Marker>
>   <MaxKeys>1000</MaxKeys>
>   <KeyCount>28</KeyCount>
>   <Delimiter>/</Delimiter>
>   <EncodingType>url</EncodingType>
>   <IsTruncated>false</IsTruncated>
>   *<Contents> <!-- S3G serves the prefix as a key that we're requested -->*
>     *<Key>path/</Key>*
>     *<LastModified>2022-10-20T06:51:38.409Z</LastModified>*
>     *<ETag>2022-10-20T06:51:38.409Z</ETag>*
>     *<Size>0</Size>*
>     *<StorageClass>STANDARD</StorageClass>*
>   *</Contents>*
>   <Contents>
>     <Key>path/.gitignore</Key>
>     <LastModified>2022-10-20T06:51:40.575Z</LastModified>
>     <ETag>2022-10-20T06:51:40.575Z</ETag>
>     <Size>635</Size>
>     <StorageClass>STANDARD</StorageClass>
>   </Contents>
>   <!-- snip -->
>   <Contents>
>     <Key>path/travis-test.sh</Key>
>     <LastModified>2022-10-20T06:51:43.080Z</LastModified>
>     <ETag>2022-10-20T06:51:43.080Z</ETag>
>     <Size>1406</Size>
>     <StorageClass>STANDARD</StorageClass>
>   </Contents>
>   <CommonPrefixes>
>     <Prefix>path/.git/</Prefix>
>   </CommonPrefixes>
>   <!-- snip -->
>   <CommonPrefixes>
>     <Prefix>path/testing/</Prefix>
>   </CommonPrefixes>
> </ListBucketResult>{quote}
>  
> h2. Case #2: listKey for a specific key (aws s3 ls s3://bucket/path/Makefile) 
> has two redundant entries
> Result
> {quote}2022-10-20 15:51:40      25602 Makefile
> 2022-10-20 15:51:40      25602 Makefile
> {quote}
> XML
> {quote}<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
> <ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/";>
>   <Name>bucket</Name>
>   <Prefix>path/Makefile</Prefix>
>   <Marker></Marker>
>   <MaxKeys>1000</MaxKeys>
>   <KeyCount>2</KeyCount>
>   <Delimiter>/</Delimiter>
>   <EncodingType>url</EncodingType>
>   <IsTruncated>false</IsTruncated>
>   *<Contents> <!-- S3G serves a path that we're requested but this line is 
> redundant -->*
>     *<Key>path/Makefile</Key>*
>     *<LastModified>2022-10-20T06:51:40.590Z</LastModified>*
>     *<ETag>2022-10-20T06:51:40.590Z</ETag>*
>     *<Size>25602</Size>*
>     *<StorageClass>STANDARD</StorageClass>*
>   *</Contents>*
>   <Contents>
>     <Key>path/Makefile</Key>
>     <LastModified>2022-10-20T06:51:40.590Z</LastModified>
>     <ETag>2022-10-20T06:51:40.590Z</ETag>
>     <Size>25602</Size>
>     <StorageClass>STANDARD</StorageClass>
>   </Contents>
> </ListBucketResult>{quote}



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