plusplusjiajia opened a new pull request, #3241:
URL: https://github.com/apache/iceberg-python/pull/3241

   # Rationale for this change
   REST catalogs can return multiple StorageCredential entries per table to 
serve different client runtimes. A common pattern is one entry with 
Hadoop-style fs.* keys alongside a second entry with canonical s3.* / gs.* keys 
consumed by the cloud-native SDKs).
   Java's FileIO implementations each filter vended credentials down to their 
own key namespace. S3FileIO.clientForStoragePath() only consumes entries with 
an s3-prefixed label 
([S3FileIO.java:413-414](https://github.com/apache/iceberg/blob/main/aws/src/main/java/org/apache/iceberg/aws/s3/S3FileIO.java#L413))
 and, when no URI prefix matches the storage path, falls back to the client 
keyed at the root "s3" prefix. pyiceberg has no HadoopFileIO, so Hadoop-style 
credential bundles have no consumer on the Python side; but 
_resolve_storage_credentials did a blind longest-prefix URI match across the 
full credential list, so when a Hadoop-style entry happened to be the longest 
URI-prefix match for a given location the Python FileIO ended up with fs.* keys 
it cannot use, and silently fell through to unauthenticated access.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to