Hi everyone,

I know this subject has been approached previously, but the instead of AWS,  
google cloud platform was involved.  I read the thread for that issue, but I 
wasn’t able to see any solution at the end.
I am trying to create an imagemosaic with data taken from a private S3 bucket, 
using wasaby cloud platform, but so far I had no success. I am able to create 
an imagemosaic with data being public, using the HttpRangeReader, but when I 
try it with private bucket I get this error message in geoserver logs:

"Caused by: java.util.concurrent.ExecutionException: 
software.amazon.awssdk.services.s3.model.S3Exception: The AWS Access Key Id you 
provided does not exist in our records. (Service: S3, Status Code: 403, Request 
ID: 0QJPZ57E8VWNDNHR)"

This error message is thrown if the path in the database is: 
https://s3.<region_name>.wasabisys.com/<bucket_name>/<key_name>

I had the same error message in QGIS, but managed to solved it by setting the 
following environment variables

export AWS_SECRET_ACCESS_KEY= <AWS_SECRET_ACCESS_KEY>
export AWS_ACCESS_KEY_ID= <AWS_ACCESS_KEY_ID?
export AWS_REGION=< AWS_REGION >
export AWS_S3_ENDPOINT=s3.eu-central-1.wasabisys.com 
<http://s3.eu-central-1.wasabisys.com/>

With QGIS, the name of the file included only the key/filename, not the whole 
https url, which geoserver seems to ask for, because if I pass only the key 
name in the database, I get this error message:

"Skipping invalid granule
java.lang.IllegalArgumentException: Illegal argument: 
“granuleLocation=<key_name>”."

which makes me think geoserver expects a complete url and not just the 
key_name/filename

I also had a look at the code and the tests here: 
https://github.com/geosolutions-it/imageio-ext/tree/master/plugin/cog/cog-rangereader-s3,
 and as far as I can tell, (I am not a java developer) )the tests are run on a 
public bucket with complete url, instead of passing only the key/filename.

I also tried to pass these environement variables in the mosaic.properties file:
IIO_HTTP_AWS_USER=aws_id
IIO_HTTP_AWS_PASSWORD=aws_secret_key
IIO_HTTP_AWS_ENDPOINT=https://s3.eu-central-1.wasabisys.com/<bucket_name>
IIO_HTTP_AWS_REGION=eu-central-1
IIO_HTTP_AWS_CORE_POOL_SIZE=10
IIO_HTTP_AWS_MAX_POOL_SIZE=50

but had no effect

I am not even able to create geotiff store using only the UI if the files are 
private and using the S3 range reader.

My question is, is this plugin meant only to work with AWS cloud platform only 
and not other cloud platforms that simulate a AWS environment? I am asking more 
for a confirmation , because I can see in the code the url expects 
".amazonaws.com"

Kind regards,
Corina






_______________________________________________
Geoserver-users mailing list

Please make sure you read the following two resources before posting to this 
list:
- Earning your support instead of buying it, but Ian Turton: 
http://www.ianturton.com/talks/foss4g.html#/
- The GeoServer user list posting guidelines: 
http://geoserver.org/comm/userlist-guidelines.html

If you want to request a feature or an improvement, also see this: 
https://github.com/geoserver/geoserver/wiki/Successfully-requesting-and-integrating-new-features-and-improvements-in-GeoServer


Geoserver-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to