Upplication / Amazon-S3-FileSystem-NIO2

An S3 File System Provider for Java 7
MIT License
122 stars 67 forks source link

Filenames with brackets or braces cause exception #105

Open labkey-dave opened 6 years ago

labkey-dave commented 6 years ago

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.