创建云存储连接文件 (数据管理)

摘要

用于为支持 ArcGIS 的云存储创建连接文件。 此工具允许现有栅格地理处理工具将云栅格格式 (CRF) 数据集写入云存储存储段,或者读取存储在云存储中的栅格数据集(不限于 CRF)作为输入。

使用情况

  • 必须提供用于建立云存储连接的必要信息才能运行此工具,例如访问密钥、保密访问密钥和存储段名称。

  • 该工具将以 ArcGIS 云存储格式输出二进制云存储连接文件 (.icsd)。

  • 可以通过文件路径(例如 c:/temp/amazons3.acs/someraster)来引用存储在云存储中的栅格数据集。

  • 该工具支持连接到 Amazon Simple Storage Service (S3) 存储段、Microsoft Azure Blob 存储容器、Alibaba Cloud Object Storage Service (OSS) 存储段和 Google 云存储。

  • 如果数据集存储在存储段中的文件夹中,则文件夹名称必须包含在路径中,例如,c:/temp/amazons3.acs/foldername/someraster

  • 该工具将验证在运行时提供的凭据。 如果无法建立连接,则该工具将失败。

  • 要将此工具与 Amazon Web Services (AWS) 身份和访问管理 (IAM) 角色一起使用,请将访问密钥 ID(帐户名称)保密访问密钥(帐户密钥)参数留空。 如果在 Amazon Elastic Compute Cloud (EC2) 计算机上运行此工具时已正确配置 IAM 角色,则可以成功连接。 之后可以在相同的环境中使用此连接文件。

参数

标注说明数据类型
连接文件位置

将在其中创建连接文件的文件夹路径。

Folder
连接文件名称

云存储连接文件的名称。

String
服务提供者

指定云存储服务提供商。

  • Azure服务提供商将为 Microsoft Azure。
  • Amazon服务提供商将为 Amazon S3。
  • Google服务提供商将为 Google 云存储。
  • Alibaba服务提供商将为 Alibaba 云存储。
  • WebHDFS服务提供商将为 WebHDFS。
  • MinIO服务提供商将为 MinIO。
  • Azure Data Lake服务提供商将为 Azure Data Lake。
String
存储段(容器)名称

将存储栅格数据集的云存储容器的名称。 许多云提供商也将其称为存储段。

String
访问密钥 ID(帐户名)
(可选)

特定云存储类型的访问密钥 ID 字符串。 与 Azure 一样,也可以是帐户名称。

String
保密访问密匙(帐户密钥)
(可选)

用于验证与云存储的连接的保密访问密钥字符串。

Encrypted String
区域(环境)
(可选)

云存储的区域字符串。 如果提供区域,则该值必须使用由云存储选择定义的格式。 默认值是所选云提供商的默认帐户。

String
服务端点
(可选)

云存储的服务端点 (uris),例如 oss-us-west-1.aliyuncs.com。 如果未提供值,则将使用所选云存储类型的默认端点。 如有必要,也可以使用 CNAME 重定向端点。

String
提供者选项
(可选)

与特定类型的云服务有关的配置选项。 有些服务提供选项,有些服务则不提供选项。 如果要将其打开,仅需设置选项。

基于角色的访问控制 (RBAC) 适用于 AmazonAzure 云提供商。 在使用 EC2Azure 虚拟机时,如果将所有身份验证参数都留空,则 ArcGIS Pro 将使用 IAM 角色Azure RBAC 访问 Blob 存储。 Amazon 支持 IMDSv1 和 IMDSv2。

Microsoft Azure Data Lake Storage Gen2 的选项与 Azure 相同,但提供了使用 DFS 端点的真正目录支持和细分操作。 指数补偿后,将重试云操作期间的某些网络错误。

有关性能方面的考虑事项和其他信息,请参阅 GDAL 虚拟文件系统文档。

  • Azure / Microsoft Azure Data Lake
    • AZURE_SAS - 指定共享访问签名。 确保其值经过 URL 编码,并且不包含前导 '?' 或 '&' 字符。 使用此选项时,保密访问密匙(帐户密钥)参数必须为空。
    • AZURE_NO_SIGN_REQUEST(默认值:FALSE)- 匿名连接到不需要身份验证访问权限的存储段(容器)。 使用此选项时,保密访问密匙(帐户密钥)参数必须为空。
    • AZURE_STORAGE_CONNECTION_STRING - 指定 Azure 存储连接字符串。 此字符串将嵌入帐户名、密钥和端点。 使用此选项时,访问密钥 ID(帐户名)保密访问密匙(帐户密钥)参数必须为空。
    • CPL_AZURE_USE_HTTPS(默认值:TRUE):设置为 FALSE 以使用 http 请求。 请注意,某些服务器可能配置为仅支持 https 请求。
  • Amazon / MinIO
    • AWS_NO_SIGN_REQUEST(默认值:FALSE)- 匿名连接到不需要身份验证访问权限的存储段(容器)。
    • AWS_SESSION_TOKEN - 指定临时登录凭据
    • AWS_DEFAULT_PROFILE - 当缺少访问密钥/ID 时,将自动使用 AWS 凭据配置文件。 此选项可用于指定要使用的配置文件。
    • AWS_REQUEST_PAYER - 通过将此选项设置为请求者,可以访问请求者付费存储段
    • AWS_Virtual_Hosting(默认:TRUE)- 仅支持路径样式请求的 Amazon S3 和 S3 兼容云提供商必须将此选项设置为 TRUE。 如果支持虚拟主机,建议您使用虚拟主机
    • CPL_VSIS3_USE_BASE_RMDIR_RECURSIVE(默认:TRUE)- 一些较早的 S3 兼容实施不支持批量删除操作。 对于这些提供商,将此选项设置为 FALSE。
    • AWS_HTTPS(默认值:TRUE)- 设置为 FALSE 以使用 http 请求。 请注意,某些服务器可能配置为仅支持 https 请求
  • Alibaba
    • OSS_Virtual_Hosting(默认:TRUE)- 仅支持路径样式请求的 Alibaba 和 S3 兼容云提供商必须将此选项设置为 TRUE。 如果支持虚拟主机,建议您使用虚拟主机
    • OSS_HTTPS(默认值:TRUE)- 设置为 FALSE 以使用 http 请求。 请注意,某些服务器可能配置为仅支持 https 请求。
  • WebHDFS
    • WEBHDFS_REPLICATION(整数)- 创建文件时使用复制值
    • WEBHDFS_PERMISSION(小数)- 创建文件时使用权限掩膜。

如果提供了多个身份验证参数,则优先级如下:

  • Azure - AZURE_STORAGE_CONNECTION_STRING、帐户名/密钥、AZURE_SAS、AZURE_NO_SIGN_REQUEST、RBAC。
  • Amazon - AWS_NO_SIGN_REQUEST、访问 ID/密钥和/或 AWS_SESSION_TOKEN、AWS 凭据配置文件、IAM 角色。

除以上列出的提供商选项,此选项 ARC_DEEP_CRAWL(默认:TRUE),可以与所有服务提供商配合使用。 如果为 True,则此选项将用于标识云中无扩展名的 CRF;此操作代价较高,强烈建议将此选项设置为 FALSE,以获得更快的目录浏览体验和抓取速度。

Value Table
文件夹
(可选)

存储段(容器)名称参数中将存储栅格数据集的文件夹。

String

派生输出

标注说明数据类型
输出连接文件

输出云存储连接文件路径。

File

arcpy.management.CreateCloudStorageConnectionFile(out_folder_path, out_name, service_provider, bucket_name, {access_key_id}, {secret_access_key}, {region}, {end_point}, {config_options}, {folder})
名称说明数据类型
out_folder_path

将在其中创建连接文件的文件夹路径。

Folder
out_name

云存储连接文件的名称。

String
service_provider

指定云存储服务提供商。

  • AZURE服务提供商将为 Microsoft Azure。
  • AMAZON服务提供商将为 Amazon S3。
  • GOOGLE服务提供商将为 Google 云存储。
  • ALIBABA服务提供商将为 Alibaba 云存储。
  • WEBHDFS服务提供商将为 WebHDFS。
  • MINIO服务提供商将为 MinIO。
  • AZUREDATALAKE服务提供商将为 Azure Data Lake。
String
bucket_name

将存储栅格数据集的云存储容器的名称。 许多云提供商也将其称为存储段。

String
access_key_id
(可选)

特定云存储类型的访问密钥 ID 字符串。 与 Azure 一样,也可以是帐户名称。

String
secret_access_key
(可选)

用于验证与云存储的连接的保密访问密钥字符串。

Encrypted String
region
(可选)

云存储的区域字符串。 如果提供区域,则该值必须使用由云存储选择定义的格式。 默认值是所选云提供商的默认帐户。

String
end_point
(可选)

云存储的服务端点 (uris),例如 oss-us-west-1.aliyuncs.com。 如果未提供值,则将使用所选云存储类型的默认端点。 如有必要,也可以使用 CNAME 重定向端点。

String
config_options
[config_options,...]
(可选)

与特定类型的云服务有关的配置选项。 有些服务提供选项,有些服务则不提供选项。 如果要将其打开,仅需设置选项。

基于角色的访问控制 (RBAC) 适用于 AmazonAzure 云提供商。 在使用 EC2Azure 虚拟机时,如果将所有身份验证参数都留空,则 ArcGIS Pro 将使用 IAM 角色Azure RBAC 访问 Blob 存储。 Amazon 支持 IMDSv1 和 IMDSv2。

Microsoft Azure Data Lake Storage Gen2 的选项与 Azure 相同,但提供了使用 DFS 端点的真正目录支持和细分操作。 指数补偿后,将重试云操作期间的某些网络错误。

有关性能方面的考虑事项和其他信息,请参阅 GDAL 虚拟文件系统文档。

  • Azure / Microsoft Azure Data Lake
    • AZURE_SAS - 指定共享访问签名。 确保其值经过 URL 编码,并且不包含前导 '?' 或 '&' 字符。 使用此选项时,保密访问密匙(帐户密钥)参数必须为空。
    • AZURE_NO_SIGN_REQUEST(默认值:FALSE)- 匿名连接到不需要身份验证访问权限的存储段(容器)。 使用此选项时,保密访问密匙(帐户密钥)参数必须为空。
    • AZURE_STORAGE_CONNECTION_STRING - 指定 Azure 存储连接字符串。 此字符串将嵌入帐户名、密钥和端点。 使用此选项时,访问密钥 ID(帐户名)保密访问密匙(帐户密钥)参数必须为空。
    • CPL_AZURE_USE_HTTPS(默认值:TRUE):设置为 FALSE 以使用 http 请求。 请注意,某些服务器可能配置为仅支持 https 请求。
  • Amazon / MinIO
    • AWS_NO_SIGN_REQUEST(默认值:FALSE)- 匿名连接到不需要身份验证访问权限的存储段(容器)。
    • AWS_SESSION_TOKEN - 指定临时登录凭据
    • AWS_DEFAULT_PROFILE - 当缺少访问密钥/ID 时,将自动使用 AWS 凭据配置文件。 此选项可用于指定要使用的配置文件。
    • AWS_REQUEST_PAYER - 通过将此选项设置为请求者,可以访问请求者付费存储段
    • AWS_Virtual_Hosting(默认:TRUE)- 仅支持路径样式请求的 Amazon S3 和 S3 兼容云提供商必须将此选项设置为 TRUE。 如果支持虚拟主机,建议您使用虚拟主机
    • CPL_VSIS3_USE_BASE_RMDIR_RECURSIVE(默认:TRUE)- 一些较早的 S3 兼容实施不支持批量删除操作。 对于这些提供商,将此选项设置为 FALSE。
    • AWS_HTTPS(默认值:TRUE)- 设置为 FALSE 以使用 http 请求。 请注意,某些服务器可能配置为仅支持 https 请求
  • Alibaba
    • OSS_Virtual_Hosting(默认:TRUE)- 仅支持路径样式请求的 Alibaba 和 S3 兼容云提供商必须将此选项设置为 TRUE。 如果支持虚拟主机,建议您使用虚拟主机
    • OSS_HTTPS(默认值:TRUE)- 设置为 FALSE 以使用 http 请求。 请注意,某些服务器可能配置为仅支持 https 请求。
  • WebHDFS
    • WEBHDFS_REPLICATION(整数)- 创建文件时使用复制值
    • WEBHDFS_PERMISSION(小数)- 创建文件时使用权限掩膜。

如果提供了多个身份验证参数,则优先级如下:

  • Azure - AZURE_STORAGE_CONNECTION_STRING、帐户名/密钥、AZURE_SAS、AZURE_NO_SIGN_REQUEST、RBAC。
  • Amazon - AWS_NO_SIGN_REQUEST、访问 ID/密钥和/或 AWS_SESSION_TOKEN、AWS 凭据配置文件、IAM 角色。

除以上列出的提供商选项,此选项 ARC_DEEP_CRAWL(默认:TRUE),可以与所有服务提供商配合使用。 如果为 True,则此选项将用于标识云中无扩展名的 CRF;此操作代价较高,强烈建议将此选项设置为 FALSE,以获得更快的目录浏览体验和抓取速度。

Value Table
folder
(可选)

bucket_name 参数中将存储栅格数据集的文件夹。

String

派生输出

名称说明数据类型
out_connection

输出云存储连接文件路径。

File

代码示例

CreateCloudStorageConnectionFile 示例 1(Python 窗口)

这是 CreateCloudStorageConnectionFile 函数的 Python 示例。

#====================================
# CreateCloudStorageConnectionFile
# Usage:
# arcpy.management.CreateCloudStorageConnectionFile(
#     out_folder_path, out_name, AZURE | AMAZON | GOOGLE | ALIBABA, bucket_name,
#     {access_key_id}, {secret_access_key}, {region}, {end_point},
#     { {Name} {Value}; {Name} {Value}...})
# arcpy.management.CreateCloudStorageConnectionFile(
#     out_folder_path, out_name, AZURE | AMAZON | GOOGLE | ALIBABA, bucket_name,
#     {access_key_id}, {secret_access_key}, {region}, {end_point},
#     {config_options})

import arcpy

# Create connection to open public bucket with requester pay option
arcpy.management.CreateCloudStorageConnectionFile(
    "C:/Workspace/connections", "awss3storage.acs", "AMAZON", "publicrasterstore",
    config_options="AWS_REQUEST_PAYER requester")

# Create connection to secured Azure bucket
arcpy.management.CreateCloudStorageConnectionFile(
    "C:/Workspace/connections", "azurestorage.acs", "AZURE", "rasterstore", "imageaccount",
    "NOGEOU1238987OUOUNOQEWQWEIO")

# Create Alibaba connection with end points
arcpy.management.CreateCloudStorageConnectionFile(
    "C:/Workspace/connections", "aliyun.acs", "ALIBABA", "rasterstore", "AYOUER9273PJJNY",
"NOGEOU1238987OUOUNOQEWQWEIO", end_point="rasterstore.oss-us-west-1.aliyuncs.com")
CreateCloudStorageConnectionFile 示例 2(独立脚本)。

这是 CreateCloudStorageConnectionFile 函数的 Python 示例。

#====================================
# CreateCloudStorageConnectionFile
# Usage:
# arcpy.management.CreateCloudStorageConnectionFile(
#     out_folder_path, out_name, AZURE | AMAZON | GOOGLE | ALIBABA, bucket_name,
#     {access_key_id}, {secret_access_key}, {region}, {end_point},
#     { {Name} {Value}; {Name} {Value}...})
# arcpy.management.CreateCloudStorageConnectionFile(
#     out_folder_path, out_name, AZURE | AMAZON | GOOGLE | ALIBABA, bucket_name,
#     {access_key_id}, {secret_access_key}, {region}, {end_point},
#     {config_options})

import arcpy

outfolder = "C:/Workspace/connections"
connectname = "googlecloudos.acs"
provider = "GOOGLE"
accesskey = "AYOUER9273PJJNY"
secretkey = "NOGEOU1238987OUOUNOQEWQWEIO"
bucketname = "rasterstore"

# Create connection to Google cloud object storage
arcpy.management.CreateCloudStorageConnectionFile(
outfolder, connectname, provider, bucketname, accesskey, secretkey)

环境

此工具不使用任何地理处理环境。

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题