Description
AWS supports to kind of pattern for the base url of the s3 rest api: virtual-hosted style and path-style.
Path style: http://s3.us-east-2.amazonaws.com/bucket
Virtual-hosted style: http://bucket.s3.us-east-2.amazonaws.com
By default we support the path style method with the volume name in the url:
http://s3.us-east-2.amazonaws.com/volume/bucket
Here the endpoint url is http://s3.us-east-2.amazonaws.com/volume/ and the bucket is appended.
Some of the 3rd party s3 tools (goofys is an example) Supports only the virtual style method. With goofys we can set a custom endpoint (http://localhost:9878) but all the other postfixes after the port are removed.
It can be solved with using virtual-style url which also could include the volume name:
http://bucket.volume..........com
The easiest way is to support both of them is implementing a ContainerRequestFilter which can parse the hostname (based on a configuration value) and extend the existing url with adding the missing volume/bucket part.