[
https://issues.apache.org/jira/browse/FLINK-39485?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
macdoor615 closed FLINK-39485.
------------------------------
Resolution: Won't Fix
> NativeS3FileSystem: support bucket-root paths (empty object key) using
> HeadBucket instead of HeadObject
> -------------------------------------------------------------------------------------------------------
>
> Key: FLINK-39485
> URL: https://issues.apache.org/jira/browse/FLINK-39485
> Project: Flink
> Issue Type: Bug
> Components: FileSystems
> Affects Versions: 2.3.0
> Environment: Flink 2.3.x + flink-s3-fs-native + MinIO/S3-compatible
> endpoint as the deployment where catalog creation was tested.
> Reporter: macdoor615
> Priority: Major
> Labels: pull-request-available
> Fix For: 2.3.0
>
>
> h2. Problem
> Creating a catalog or checking existence for a warehouse URI of the form
> {{s3://my-bucket}} (no object prefix) fails with AWS SDK v2:
> {code:java}
> SdkClientException: Unable to marshall request to JSON: Key cannot be empty.
> Caused by: IllegalArgumentException: Key cannot be empty.{code}
> {{NativeS3FileSystem.getFileStatus}} always builds a {{HeadObject}} request.
> For the bucket root, {{NativeS3AccessHelper.extractKey}} returns an empty
> string, which is invalid for {{{}HeadObject{}}}.
> h2. Expected behavior
> Bucket root should resolve to a directory status if the bucket exists, e.g.
> by using {{HeadBucket}} (or an equivalent check), and listing semantics for
> the empty prefix should remain correct.
> h2. Related
> {{getDirectoryStatus}} should use prefix {{""}} for an empty key, not
> {{{}"/"{}}}, when listing the bucket root.
>
>
> Related PR : [https://github.com/apache/flink/pull/27964]
--
This message was sent by Atlassian Jira
(v8.20.10#820010)