COG(云优化GeoTIFF)支持¶
COG (Cloud Optimized GeoTIFF)是一个常规的GeoTIFF文件,旨在托管在HTTP文件服务器上,其内部组织便于发出命令的客户端使用 HTTP GET range 请求。COG模块允许设置连接到Cloud GeoTIFF的配置参数,以及向支持该连接所需的类路径添加JAR。
安装¶
作为社区模块,需要从 nightly builds ,选择相应Geoserver系列的社区文件夹(例如,如果每晚构建Geoserver主开发分支,请选择压缩文件形式 main/community-latest )。
要安装该模块,请将zip文件内容解压缩到Geoserver中 WEB-INF/lib 目录,然后重新启动Geoserver。
COG GeoTIFF配置面板¶
COG插件不会添加新的商店,相反,它会向现有商店添加COG支持。
配置GeoTIFF存储时,会出现一个新的复选框: Cloud Optimized GeoTIFF (COG) . 将打开一个新部分的设置,该节显示此COG存储的COG配置参数。
COG连接参数¶
正在检查 Cloud Optimized GeoTIFF (COG) 复选框将提供新选项:
期权 |
描述 |
|---|---|
URL |
(前缀为 |
Range Reader Settings |
哪种类型的量程读取器实现。当前支持的值有HTTP、GoogleCloud、Azure、S3,后者使用S3客户端 |
User Name / Access Key ID / Account Name |
可选用户名(HTTP)或访问密钥ID(S3)或帐户名(Azure),以防COG数据集需要身份验证 |
Password / Secret Access Key / Account Key |
以前凭据的密码(HTTP)或秘密访问密钥(S3)或帐户密钥(Azure) |
COG图像拼接配置¶
为了正确配置基于COG的ImageMosaic,可以在ImageMosaic索引器配置中指定其他配置参数。
indexer.properties¶
参数 |
强制性的? |
描述 |
|---|---|---|
齿轮 |
Y |
要设置的布尔标志(真/假),以表示图像马赛克是一个几何数据镶嵌。 |
CogRangeReader |
N |
指定执行范围读取请求的所需RangeReader实现。 |
CogUser |
N |
在需要基本HTTP身份验证才能访问COG数据集、需要S3访问密钥ID或需要Azure帐户名称时设置凭据 |
CogPassword |
N |
上述用户的密码或上述S3密钥的秘密访问密钥或上述Azure帐户名称的帐户密钥。 |
COG RangeReader¶
下表提供了 CogRangeReader 根据目标存储的类型:
存储类型 |
类名 |
|---|---|
HTTP |
可以省略或设置为 |
AWS S3 |
|
GoogleCloud |
|
碧蓝 |
|
中心距全局设置¶
“GeoServer全局设置”页面包含设置新COG GeoTIFF存储时显示的默认COG设置。
默认全局中心距设置¶
图像位置¶
对于由HTTP服务器提供的图像,必须使用HTTP URL。对于S3或Google Cloud提供的图像,可以同时使用公共HTTP URL或惯用的URI,例如:
s3://landsat-pds/c1/L8/153/075/LC08_L1TP_153075_20190515_20190515_01_RT/LC08_L1TP_153075_20190515_20190515_01_RT_B2.TIFgs://gcp-public-data-landsat/LC08/01/044/034/LC08_L1GT_044034_20130330_20170310_01_T2/LC08_L1GT_044034_20130330_20170310_01_T2_B11.TIF
HTTP客户端(OkHttp)配置¶
HTTP客户端配置(基于 OkHttp client )可以通过环境变量指定。
环境变量 |
描述 |
|---|---|
IIO_HTTP_MAX_REQUESTS |
并发执行的最大请求数。上面这个请求队列在内存中,等待正在运行的调用完成。(默认128) |
IIO_HTTP_MAX_REQUESTS_PER_HOST |
每个主机并发执行的最大请求数。(默认值5) |
IIO_HTTP_MAX_IDLE_CONNECTIONS |
最大空闲连接数。(默认值5) |
IIO_HTTP_KEEP_ALIVE_TIME |
保持活动时间(秒),表示多余空闲线程在终止前等待新任务的最长时间。(默认值60) |
AWS S3客户端配置¶
一个S3异步客户机将用于同一个区域和别名(url模式,即http、https)。可以设置以下环境变量来为该特定别名自定义异步客户端的池。在下表中,如果要为这些架构配置属性,请将“$ALIAS$”模板替换为HTTP、HTTPS或S3。
环境变量 |
描述 |
|---|---|
IIO_$ALIAS$_AWS_CORE_POOL_SIZE |
S3客户机的核心池大小(默认为50) |
IIO_$ALIAS$_AWS_MAX_POOL_SIZE |
S3客户机池中允许的最大线程数(默认128) |
IIO_$ALIAS$_AWS_KEEP_ALIVE_TIME |
保持活动时间(秒),表示多余空闲线程在终止前等待新任务的最长时间。(默认值10) |
IIO_$ALIAS$_AWS_USER |
AWS基本身份验证凭据的默认用户(访问密钥ID) |
IIO_$ALIAS$_AWS_PASSWORD |
AWS基本身份验证凭据的默认密码(秘密访问密钥) |
IIO_$ALIAS$_AWS_REGION |
默认AWS区域 |
IIO_$ALIAS$_AWS_ENDPOINT |
到Amazon服务或由第三方运行的任何其他S3兼容服务的端点 |
Google云存储配置¶
访问Google Cloud的凭据不能以用户名和密码的形式提供(Google Cloud不支持的身份验证方法),但需要通过指向密钥文件的系统变量提供::
set GOOGLE_APPLICATION_CREDENTIALS=/path/to/the/key-file.json
export GOOGLE_APPLICATION_CREDENTIALS
Azure配置¶
同一容器将使用单个Azure客户端。将从提供的Azure URL检索帐户和容器。可以设置以下系统属性以自定义缺少的客户端属性。
系统属性 |
描述 |
|---|---|
azure.reader.accountName |
Azure帐户名 |
azure.reader.accountKey |
上述帐户的Azure帐户密钥 |
azure.reader.container |
上述帐户的默认容器 |
azure.reader.prefix |
包含BLOB的可选前缀 |
azure.reader.maxConnections |
基础Azure客户端支持的最大连接数 |
客户端配置(系统属性)¶
请注意,还可以使用系统属性而不是环境变量来指定前面表中报告的所有IIO设置。你只需要用小写单词替换大写单词,用点替换下划线。因此,可以通过设置 IIO_HTTP_MAX_REQUESTS 环境变量或 iio.http.max.requests Java系统属性(首先检查环境变量)。
默认情况下,当访问COG时,将读取16KB的初始块以尝试解析标头,以便读取器将获得可用块的偏移量和长度。在处理托管许多分片的文件时,可能整个头文件不能放入初始块中。在这种情况下,将逐步进行额外的读取(相同大小的区块)以完成标头的加载。一个 it.geosolutions.cog.default.header.length 系统属性可以配置为设置读取区块的长度(以字节为单位)。对此进行调优,以便在读取标头时只需很少的额外请求,这有助于提高性能。值太大可能会导致内存消耗问题,并会降低效率,因为将读取不必要的数据。