github-actions[bot] commented on code in PR #64009:
URL: https://github.com/apache/doris/pull/64009#discussion_r3449758734
##########
fe/fe-filesystem/fe-filesystem-spi/src/main/java/org/apache/doris/filesystem/spi/S3CompatibleFileSystem.java:
##########
@@ -508,6 +508,15 @@ private static boolean containsGlob(String path) {
return path.indexOf('*') >= 0 || path.indexOf('?') >= 0;
}
+ private static boolean containsRecursiveGlobMetachar(String path) {
+ for (char c : new char[] {'*', '?', '[', '{', '\\'}) {
Review Comment:
Restoring the old no-list behavior needs to cover finite deterministic glob
patterns, not only patterns with no `{` or `[` at all. The PR description
points to #60414, and that implementation used `S3Util.isDeterministicPattern`
plus expansion to HEAD concrete keys for cases such as `file{1,2}.csv` and
non-negated `file[12].csv`, specifically so these paths did not need
`ListBucket`. With this helper treating `{` and `[` as recursive glob
metacharacters unconditionally, those same TVF URIs fall through to
`listObjectsWithOptions` below, so credentials that can
`HeadObject`/`GetObject` the finite target keys but deny bucket listing still
fail. Please either port the deterministic expansion/HEAD path with the
existing max-path guard, or add coverage/documentation showing this narrower
restore is intentional.
--
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]