编者:王丽莉
SuperMap 的镶嵌数据集和影像服务都支持管理对象存储中的影像文件,包括:华为OBS对象存储服务、阿里OSS对象存储服务、S3简单存储服务,并且这些对象存储都支持以HTTP访问协议和GDAL的vsis3文件系统程序来访问,这里推荐使用GDAL的vsis3文件系统程序来访问。
SuperMap 镶嵌数据集和影像服务都需要通过影像文件清单来指定所管理的对象存储中的影像文件,清单文件为一个 .txt文本文件,每行为一条记录,每条记录为一幅影像文件的全路径。这样,镶嵌数据集就可以通过清单文件将其中的影像文件添加进来进行管理;影像服务也可以通过该清单文件将其中的影像文件发布为影像服务(如何基于清单文件发布影像服务,请参见SuperMap iServer帮助文档),关于对象存储中影像文件的路径的写法规则如下:
1、HTTP访问协议:影像文件的路径的写法为:
/vsicurl/http://1.1.1.1:80/mybucket/L51C001003.tif,其中:“/vsicurl/”是http协议访问方式的必须前缀;“mybucket”为桶名。
2、HTTPS访问协议:影像文件的路径的写法为:
/vsicurl/https://1.1.1.1:443/mybucket/L51C001003.tif,其中:“/vsicurl/”是http协议访问方式的必须前缀;“mybucket”为桶名。
3、GDAL的vsis3文件系统程序访问:影像文件的路径的写法为:/vsis3/mybucket/L51C001003.tif,其中,“/vsis3/”是必须前缀;“mybucket”为桶名。
以上为镶嵌数据集和影像服务如何访问对象存储中的影像文件的内容,SuperMap程序能够成功访问对象存储中的影像文件,还需要进行机器环境的相关配置,即需要配置如下所示的几个系统环境变量:
1、配置对象存储的访问协议
新建一个名为“AWS_HTTPS”的系统环境变量来指定对象存储的访问协议。默认访问协议为 HTTPS。
若采用HTTP访问协议,“AWS_HTTPS”变量的值设置为NO;若采用HTTPS访问协议,“AWS_HTTPS”设置为TRUE,且为默认值。
2、指定对象存储的URI
新建一个名为“AWS_S3_ENDPOINT”的系统环境变量,变量的值设置为对象存储的访问地址,支持域名和IP+端口两种地址形式。
例如:
AWS_S3_ENDPOINT=obs.cn-north-4.myhuaweicloud.com
AWS_S3_ENDPOINT=1.1.1.1:80
AWS_S3_ENDPOINT=1.1.1.1:443
备注说明:关于端口的说明,若对象存储采用HTTPS协议访问,默认端口为443;若采用HTTP协议访问,默认端口为80。
3、对象存储的访问密钥AK\SK
新建名称为“AWS_ACCESS_KEY_ID”和“AWS_SECRET_ACCESS_KEY”的系统环境变量,变量的值设置为密钥AK\SK值。
4、配置对象存储的桶的访问方式
访问公有云对象存储时无需设置该环境变量,而访问私有云对象存储时必须配置。
新建一个名为“AWS_VIRTUAL_HOSTING”的系统环境变量,变量的值设置为FALSE。
这是因为“AWS_VIRTUAL_HOSTING”默认值为TRUE,此时,桶的访问方式为桶名+HostName,例如:mybucket.cname.domain,com,而SuperMap支持桶的访问方式为将桶作为对象存储URI的顶级目录,即cname.domain,com/mybucket,因此,需要将“AWS_VIRTUAL_HOSTING”设置为FALSE。
5、无需签名的配置
访问公有云对象存储时无需设置该环境变量,而访问私有云对象存储时必须配置。
新建一个名为“AWS_NO_SIGN_REQUEST”的系统环境变量,变量的值设置为YES。
当访问私有云对象存储中的数据时,如果遇到如下所示的错误信息(The request signature we calculated dose not match the signature you provided. Check your key and signing method.),可以通过“AWS_NO_SIGN_REQUEST=YES”系统环境变量设置来解决。
6、配置CURL SSL证书
当访问对象存储中的数据失败时,且遇到如下所示的错误信息(CURL error: SSL certificate problem:),您需要下载一个CURL SSL证书并完成配置。如果未遇到此问题,请忽略此步骤。