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

摘要

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

使用情况

  • 必须提供用于建立云存储连接的必要信息才能运行此工具,例如访问密钥 ID、保密访问密钥字符串和存储段名称。 您还可以使用提供商选项参数使用替代身份验证方法。

    了解有关与云存储连接的详细信息

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

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

  • 此工具支持连接到 Amazon Simple Storage Service (S3) 存储桶、Microsoft Azure Blob 存储容器、Microsoft Azure Data Lake Storage Gen2、Alibaba Cloud Object Storage Service (OSS) 存储桶、Google 云存储服务 (GCS) 存储桶、 WebHDFS MinIO Ozone 对象存储服务存储桶。

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

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

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

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

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

参数

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

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

Folder
连接文件名称

云存储连接文件的名称。

String
服务提供商

指定将使用的云存储服务提供商。

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

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

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

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

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

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

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

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

String
服务端点
(可选)

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

String
提供商选项
(可选)

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

  • AzureMicrosoft 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 请求
  • Google
    • GS_NO_SIGN_REQUEST(默认值:True)- 匿名连接到不需要身份验证访问权限的存储段(容器)。
    • GS_USER_PROJECT - 可以通过设置 OAuth2 密钥和计费工程来访问请求者付费存储段。 使用此选项设置项目并使用其他选项设置 OAuth2 密钥,而不是 HMAC 密钥作为秘密访问密钥或 ID。
    • GS_OAUTH2_REFRESH_TOKEN - 指定 OAuth2 刷新访问令牌。 使用 GS_OAUTH2_CLIENT_ID GS_OAUTH2_CLIENT_SECRET 设置 OAuth2 客户端凭据。
    • GOOGLE_APPLICATION_CREDENTIALS - 使用包含私钥和客户端电子邮件地址的 .json 文件指定服务帐户 OAuth2 凭据
    • GS_OAUTH2_ PRIVATE_KEY - 使用私钥字符串指定服务帐户 OAuth2 凭据。 必须设置 GS_AUTH2_CLIENT_EMAIL
    • GS_OAUTH2_ PRIVATE_KEY_FILE - 使用来自文件的私钥指定服务帐户 OAuth2 凭据。 必须设置 GS_AUTH2_CLIENT_EMAIL
    • GS_AUTH2_CLIENT_EMAIL - 使用客户端电子邮件地址指定服务帐户 OAuth2 凭据。
    • GS_AUTH2_SCOPE - 指定服务帐户 OAuth2 范围。 有效值为 https://www.googleapis.com/auth/devstorage.read_write(默认)和 https://www.googleapis.com/auth/devstorage.read_only
    • GDAL_HTTP_HEADER_FILE - 指定存储在外部文件中的不记名身份验证凭据。
  • 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 角色。
  • Google - GS_NO_SIGN_REQUEST、访问 ID 或密钥、GDAL_HTTP_HEADER_FILE(GS_OAUTH2_REFRESH_TOKEN or GS_OAUTH2_CLIENT_ID and GS_OAUTH2_CLIENT_SECRET)GOOGLE_APPLICATION_CREDENTIALS(GS_OAUTH2_PRIVATE_KEY or GS_OAUTH2_CLIENT_EMAIL)(GS_OAUTH2_PRIVATE_KEY_FILE or GS_OAUTH2_CLIENT_EMAIL)IAM Role
  • Ozone
    • AWS_DEFAULT_PROFILE - 当缺少访问密钥或 ID 时,将自动使用 AWS 凭据配置文件。 此选项可用于指定要使用的配置文件。
    • AWS_Virtual_Hosting(默认:True)- 如果使用仅支持路径样式请求的 Amazon S3 和 S3 兼容云提供商,需将此选项设置为 True。 如果支持虚拟主机,建议您使用虚拟主机
    • AWS_HTTPS(默认值:True)- 设置为 False 以使用 HTTP 请求。 某些服务器可能配置为仅支持 HTTPS 请求
    • CPL_VSIS3_USE_BASE_RMDIR_RECURSIVE(默认:True)- 一些较早的 S3 兼容实施不支持批量删除操作。 对于这些提供商,将此选项设置为 False。
    • x-amz-storage-class - 为写入单个容器的 Ozone 指定 REDUCED_REDUNDANCY,因为它具有单个数据节点。

除以上列出的提供商选项,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。
  • OZONE服务提供程序为 Ozone。
String
bucket_name

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

String
access_key_id
(可选)

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

String
secret_access_key
(可选)

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

Encrypted String
region
(可选)

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

String
end_point
(可选)

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

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

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

  • AzureMicrosoft 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 请求
  • Google
    • GS_NO_SIGN_REQUEST(默认值:True)- 匿名连接到不需要身份验证访问权限的存储段(容器)。
    • GS_USER_PROJECT - 可以通过设置 OAuth2 密钥和计费工程来访问请求者付费存储段。 使用此选项设置项目并使用其他选项设置 OAuth2 密钥,而不是 HMAC 密钥作为秘密访问密钥或 ID。
    • GS_OAUTH2_REFRESH_TOKEN - 指定 OAuth2 刷新访问令牌。 使用 GS_OAUTH2_CLIENT_ID GS_OAUTH2_CLIENT_SECRET 设置 OAuth2 客户端凭据。
    • GOOGLE_APPLICATION_CREDENTIALS - 使用包含私钥和客户端电子邮件地址的 .json 文件指定服务帐户 OAuth2 凭据
    • GS_OAUTH2_ PRIVATE_KEY - 使用私钥字符串指定服务帐户 OAuth2 凭据。 必须设置 GS_AUTH2_CLIENT_EMAIL
    • GS_OAUTH2_ PRIVATE_KEY_FILE - 使用来自文件的私钥指定服务帐户 OAuth2 凭据。 必须设置 GS_AUTH2_CLIENT_EMAIL
    • GS_AUTH2_CLIENT_EMAIL - 使用客户端电子邮件地址指定服务帐户 OAuth2 凭据。
    • GS_AUTH2_SCOPE - 指定服务帐户 OAuth2 范围。 有效值为 https://www.googleapis.com/auth/devstorage.read_write(默认)和 https://www.googleapis.com/auth/devstorage.read_only
    • GDAL_HTTP_HEADER_FILE - 指定存储在外部文件中的不记名身份验证凭据。
  • 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 角色。
  • Google - GS_NO_SIGN_REQUEST、访问 ID 或密钥、GDAL_HTTP_HEADER_FILE(GS_OAUTH2_REFRESH_TOKEN or GS_OAUTH2_CLIENT_ID and GS_OAUTH2_CLIENT_SECRET)GOOGLE_APPLICATION_CREDENTIALS(GS_OAUTH2_PRIVATE_KEY or GS_OAUTH2_CLIENT_EMAIL)(GS_OAUTH2_PRIVATE_KEY_FILE or GS_OAUTH2_CLIENT_EMAIL)IAM Role
  • Ozone
    • AWS_DEFAULT_PROFILE - 当缺少访问密钥或 ID 时,将自动使用 AWS 凭据配置文件。 此选项可用于指定要使用的配置文件。
    • AWS_Virtual_Hosting(默认:True)- 如果使用仅支持路径样式请求的 Amazon S3 和 S3 兼容云提供商,需将此选项设置为 True。 如果支持虚拟主机,建议您使用虚拟主机
    • AWS_HTTPS(默认值:True)- 设置为 False 以使用 HTTP 请求。 某些服务器可能配置为仅支持 HTTPS 请求
    • CPL_VSIS3_USE_BASE_RMDIR_RECURSIVE(默认:True)- 一些较早的 S3 兼容实施不支持批量删除操作。 对于这些提供商,将此选项设置为 False。
    • x-amz-storage-class - 为写入单个容器的 Ozone 指定 REDUCED_REDUNDANCY,因为它具有单个数据节点。

除以上列出的提供商选项,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: 是

相关主题