If there is a file in S3 whose name has brackets, braces or a %, an exception is thrown from URI.create, called by S3Path.toUri(). For example, if our filename is foo[1], the S3Path object's field "uri" is something like "/foo[1]", toUri() then builds a string "s3://ZZZZZZZ@s3.amazonaws.com/bucketname/foo[1]" which URI.create() doesn't like because of the []. I looked at sun.nio.fs.UnixPath.toUri() and it calls UnixUriUtils, which does encode these chars.
I would suggest that S3Path.encode() add encoding for [], {}, % and perhaps other chars.
If there is a file in S3 whose name has brackets, braces or a %, an exception is thrown from URI.create, called by S3Path.toUri(). For example, if our filename is foo[1], the S3Path object's field "uri" is something like "/foo[1]", toUri() then builds a string "s3://ZZZZZZZ@s3.amazonaws.com/bucketname/foo[1]" which URI.create() doesn't like because of the []. I looked at sun.nio.fs.UnixPath.toUri() and it calls UnixUriUtils, which does encode these chars.
I would suggest that S3Path.encode() add encoding for [], {}, % and perhaps other chars.
Thanks.