S3 Support for GeoTiff
Support for GeoTiffs hosted on Amazon S3 or on other Amazon S3 compatible services, via a custom GeoTools GridFormat.
What's in the Box?
org.geotools.s3.geotiff
: S3 GeoTiff Format/FormatFactory/GridCoverage2dReader implementations based off of the GeoTiff versions. Only very minor changes to their parent classes.org.geotools.s3.cache
: Very basic caching of images from S3 based off of EhCache.S3ImageInputStreamImpl
: An implementation of ImageInputStream from JAI for reading imagery from S3. This class mainly contains the logic of stream position and chunking, while the cache package handles the actual S3 reads.
GeoTiffs hosted on Amazon S3
Configuration
Almost all configuration is currently done via system properties. For caching configuration, please see the class org.geotools.s3.cache.CacheConfig
.
Usage
S3GeoTiff uses s3:// style URLs to operate. The only twist is that S3GeoTiff uses query string parameters to configure certain parameters
awsRegion
: Controls the region to use when connecting. Needs to be in Java enum format eg. US_WEST_2useAnon
: Controls whether to authenticate anonymously. This needs to be used to connect anonymous buckets
For example:
s3://landsat-pds/L8/001/002/LC80010022016230LGN00/LC80010022016230LGN00_B1.TIF?useAnon=true&awsRegion=US_WEST_2
Credentials
Unless S3_USE_ANON
is set to true the default AWS client credential chain is used.
GeoTiffs hosted on other Amazon S3 compatible services
Access geotiffs on S3 servers not hosted on Amazon, e.g. https://www.minio.io/ or other. There are 2 steps to access the geofiff files. configure the server in the s3.properties file and then you can use the prefix as an alias to access the file in the S3GeoTiff module for geoserver.
Configuration
The S3 endpoints are configured in the s3.properties file. The following properties are needed for each endpoint. The prefix alias
can be any value you choose in order to configure multiple endpoints.
alias.s3.endpoint
=http://your-s3-server/alias.s3.user
=your-user-namealias.s3.password
=your-password
Usage
Using the above configuration in the s3.properties file, the files on the S3 service can be accessed with the following URL style configuration in geoserver:
alias://bucketname/filename.tiff
alias
: The prefix you choose for the configuration of the endpointbucketname
: The path to the folder where the geotiffs are storedfilename.tif
: The name of the geotiff file