In the message Cristina posted they used '-H "Content-type: text/plain"' which will confuse GeoServer for sure
Ian On Wed, 25 Oct 2023 at 09:33, Rahkonen Jukka < jukka.rahko...@maanmittauslaitos.fi> wrote: > Hi, > > > > But it is a zip file that is uploaded and application/zip is used in the > manual so I guess that at least it has worked when the manual was written > https://docs.geoserver.org/main/en/user/community/cog/mosaic.html > > > > COGs are TIFFs with some extra features and this is how the mime type is > defined in the OGC standard: > > When required, a COG file should use the MIME type image/tiff with the > application parameter value geotiff and the profile parameters value > cloud-optimized, therefore as follows: > > > > image/tiff; application=geotiff; profile=cloud-optimized > > -Jukka Rahkonen- > > > > *Lähettäjä:* Ian Turton <ijtur...@gmail.com> > *Lähetetty:* keskiviikko 25. lokakuuta 2023 10.47 > *Vastaanottaja:* cristinaarc...@alia-space.com > *Kopio:* geoserver-users <geoserver-users@lists.sourceforge.net> > *Aihe:* Re: [Geoserver-users] Error creating COG Mosaic via REST API > > > > I think your mime type is wrong, should it not be an image of some type, I > forget what COGs use. > > > > Ian > > > > On Tue, 24 Oct 2023, 17:29 , <cristinaarc...@alia-space.com> wrote: > > Hello, > > I’m trying to create a COG ImageMosaic on Geoserver, following the > instruction described at: > > https://docs.geoserver.org/main/en/user/community/cog/mosaic.html > > > > I succeeded with step 1 (create an empty store) via rest API > > > > curl -u <user>:<pwd> -XPUT --write-out %{http_code} -H > "Content-type:application/zip" --data-binary @modis.zip > http://localhost:8080/geoserver/rest/workspaces/cite/coveragestores/modis/file.imagemosaic?configure=none > > (201) > > > > But when I try to add a granule to the store, I have the following error: > > curl -u <user>:<pwd> -XPOST -H "Content-type: text/plain" --write-out > %{http_code} -d > https://modis-vi-nasa.s3-us-west-2.amazonaws.com/MOD13A1.006/2018.01.01.tif > http://localhost:8080/geoserver/rest/workspaces/cite/coveragestores/modis/remote.imagemosaic > > > > java.io.IOException: Failed to create reader from file:data/dea/modis and > hints Hints: > > REPOSITORY = org.geoserver.catalog.CatalogRepository@740d84d1 > > EXECUTOR_SERVICE = > java.util.concurrent.ThreadPoolExecutor@e508348[Running, pool size = 0, > active threads = 0, queued tasks = 0, completed tasks = 0] > > System defaults: > > FORCE_AXIS_ORDER_HONORING = http > > STYLE_FACTORY = StyleFactoryImpl > > FEATURE_FACTORY = > org.geotools.feature.LenientFeatureFactoryImpl@4f4c6bb8 > > FORCE_LONGITUDE_FIRST_AXIS_ORDER = true > > LENIENT_DATUM_SHIFT = true > > GRID_COVERAGE_FACTORY = GridCoverageFactory > > TILE_ENCODING = null > > FILTER_FACTORY = FilterFactoryImpl > > COMPARISON_TOLERANCE = 1.0E-8 > > > > at > org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1571) > > at > org.geoserver.catalog.ResourcePool.getGridCoverageReader(ResourcePool.java:1514) > > at > org.geoserver.catalog.impl.CoverageStoreInfoImpl.getGridCoverageReader(CoverageStoreInfoImpl.java:57) > > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > > at > org.geoserver.catalog.impl.ModificationProxy.invoke(ModificationProxy.java:144) > > at com.sun.proxy.$Proxy46.getGridCoverageReader(Unknown Source) > > at > org.geoserver.rest.catalog.CoverageStoreFileController.coverageStorePost(CoverageStoreFileController.java:98) > > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > > at > org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) > > at > org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) > > at > org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) > > at > org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878) > > at > org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792) > > at > org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) > > at > org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1043) > > at > org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) > > at > org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) > > at > org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:696) > > at > org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:779) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) > > at > org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) > > at > org.apache.catalina.filters.CorsFilter.handleNonCORS(CorsFilter.java:357) > > at > org.apache.catalina.filters.CorsFilter.doFilter(CorsFilter.java:176) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) > > at > org.geoserver.filters.ThreadLocalsCleanupFilter.doFilter(ThreadLocalsCleanupFilter.java:28) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) > > at > org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:73) > > at > org.geoserver.ows.HTTPHeadersCollector.doFilter(HTTPHeadersCollector.java:48) > > at > org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70) > > at > org.geoserver.filters.LoggingFilter.doFilter(LoggingFilter.java:194) > > at > org.geoserver.filters.SpringDelegatingFilter$Chain.doFilter(SpringDelegatingFilter.java:70) > > at > org.geoserver.filters.SpringDelegatingFilter.doFilter(SpringDelegatingFilter.java:43) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) > > at > org.geoserver.platform.AdvancedDispatchFilter.doFilter(AdvancedDispatchFilter.java:39) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71) > > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) > > at > org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75) > > at > org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71) > > at > org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75) > > at > org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > > at > org.geoserver.security.filter.GeoServerAnonymousAuthenticationFilter.doFilter(GeoServerAnonymousAuthenticationFilter.java:53) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71) > > at > org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:215) > > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75) > > at > org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92) > > at > org.geoserver.security.filter.GeoServerBasicAuthenticationFilter.doFilter(GeoServerBasicAuthenticationFilter.java:81) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:71) > > at > org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) > > at > org.geoserver.security.filter.GeoServerSecurityContextPersistenceFilter$1.doFilter(GeoServerSecurityContextPersistenceFilter.java:52) > > at > org.geoserver.security.filter.GeoServerCompositeFilter$NestedFilterChain.doFilter(GeoServerCompositeFilter.java:75) > > at > org.geoserver.security.filter.GeoServerCompositeFilter.doFilter(GeoServerCompositeFilter.java:92) > > at > org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) > > at > org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) > > at > org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) > > at > org.geoserver.security.GeoServerSecurityFilterChainProxy.doFilter(GeoServerSecurityFilterChainProxy.java:142) > > at > org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358) > > at > org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) > > at > org.geoserver.filters.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:77) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) > > at org.geoserver.filters.GZIPFilter.doFilter(GZIPFilter.java:54) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) > > at > org.geoserver.filters.SessionDebugFilter.doFilter(SessionDebugFilter.java:49) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) > > at > org.geoserver.filters.FlushSafeFilter.doFilter(FlushSafeFilter.java:42) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) > > at > org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) > > at > org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) > > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) > > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) > > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) > > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) > > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) > > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) > > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) > > at > org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) > > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) > > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) > > at > org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) > > at > org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) > > at > org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) > > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789) > > at > org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) > > at > org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) > > at > org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) > > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > > at java.base/java.lang.Thread.run(Thread.java:829) > > > > > > I installed Geoserver with docker, using the image > docker.osgeo.org/geoserver:2.21.4 > > > > Here are my installation options (plugin for COG support is installed, > too): > > > > docker run -d --mount > type=bind,src=/data/geoserver/data=/opt/geoserver_data/data --mount > type=bind,src=/data/geoserver > /geo_plugins/lib,target=/opt/apache-tomcat-9.0.68/webapps/geoserver/WEB-INF/lib > -it -p 8080:8080 --env CORS_ENABLED=true --env INSTALL_EXTENSIONS=true > --env > STABLE_EXTENSIONS="css,db2,gdal,grib,netcdf-out,netcdf,pyramid,wmts-multi-dimensional,xslt,jp2k" > --env EXTRA_JAVA_OPTS='-Xms1g -Xmx16g -Duser.timezone=GMT > -Dorg.geotools.shapefile.datetime=true' docker.osgeo.org/geoserver:2.21.4 > > > > Any help will be appreciated. > > > > Cheers, > > Cristina Arcari > > > > _______________________________________________ > 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 > > -- Ian Turton
_______________________________________________ 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