AzCopy v10 配置设置(Azure 存储)

AzCopy 是一个命令行实用工具,可用于向/从存储帐户复制 Blob 或文件。 本文包含可用于配置 AzCopy v10 的环境变量列表。

注意

如果你正在寻找 AzCopy 入门内容,请参阅 AzCopy 入门

AzCopy v10 环境变量

下表描述了每个环境变量并提供了相关链接,可利用链接中的内容使用这些环境变量。

环境变量 说明
AWS_ACCESS_KEY_ID Amazon Web Services 访问密钥。 提供密钥以对 Amazon Web Services 进行授权。使用 AzCopy 将数据从 Amazon S3 复制到 Azure 存储
AWS_SECRET_ACCESS_KEY Amazon Web Services 机密访问密钥 提供密钥以对 Amazon Web Services 进行授权。 使用 AzCopy 将数据从 Amazon S3 复制到 Azure 存储
AZCOPY_ACTIVE_DIRECTORY_ENDPOINT 要使用的 Microsoft Entra 终结点。 此变量仅用于自动登录,请在调用登录命令时改为使用命令行标志。
AZCOPY_AUTO_LOGIN_TYPE 将此变量设置为 DEVICEMSISPNAZCLIPSCRED。 此变量提供在不使用 azcopy login 命令的情况下授权的功能。 请参阅使用 AzCopy 和 Microsoft Entra ID 授予对 blob 的访问权限
AZCOPY_BUFFER_GB 指定 AzCopy 在下载和上传文件时要使用的最大系统内存量。 请以 GB 表示此值。 请参阅优化内存用量
AZCOPY_CACHE_PROXY_LOOKUP 默认情况下,AzCopy on Windows 将在主机名级别缓存代理服务器查找(不考虑 URL 路径)。 设置为“true”以外的其他值可禁用缓存。
AZCOPY_CONCURRENCY_VALUE 指定可能发生的并发请求数。 可以使用此变量来提高吞吐量。 如果计算机中的 CPU 少于 5 个,则此变量的值将设置为 32。 否则,默认值等于 16 乘以 CPU 数。 此变量的最大默认值为 3000,但可以手动增大或减小此值。 请参阅提高并发
AZCOPY_CONCURRENT_FILES 通过控制并发启动传输的文件的数量,覆盖任何时候正在进行的文件的(近似)数量。
AZCOPY_CONCURRENT_SCAN 控制扫描期间使用的(最大)并行度。 仅影响并行化枚举器,其中包括 Azure 文件存储/Blob 和本地文件系统。
AZCOPY_CONTENT_TYPE_MAP 重写操作系统定义的一个或多个默认 MIME 类型映射。 将此变量设置为定义任何映射的 JSON 文件的路径。 下面是示例 JSON 文件的内容:

{
  "MIMETypeMapping": {
    ".323": "text/h323",
    ".aaf": "application/octet-stream",
    ".aca": "application/octet-stream",
    ".accdb": "application/msaccess"
     }
}
AZCOPY_DEFAULT_SERVICE_API_VERSION 覆盖服务 API 版本,使 AzCopy 可以容纳 Azure Stack 等自定义环境。
AZCOPY_DISABLE_HIERARCHICAL_SCAN 仅当 Azure Blob 为源时才适用。 并发扫描速度更快,但使用分层列表 API,这可能会导致增加 IO/成本。 指定为“true”会降低性能,但能节省成本。
AZCOPY_DISABLE_SYSLOG 在 Syslog 或 Windows 事件记录器中禁用记录。 默认情况下,AzCopy 会将日志发送到这些通道。 如果要降低 Syslog 或 Windows 事件记录器中的干扰,可以将此变量设置为 true。
AZCOPY_DOWNLOAD_TO_TEMP_PATH 将 AzCopy 配置为在实际下载之前下载到临时路径。 允许的值为 true 或 false
AZCOPY_JOB_PLAN_LOCATION 覆盖作业计划文件(用于进度跟踪和恢复)存储的位置,以避免填满磁盘。
AZCOPY_LOG_LOCATION 覆盖存储日志文件的位置,以避免填满磁盘。
AZCOPY_MSI_CLIENT_ID 用户分配的托管标识的客户端 ID。 AZCOPY_AUTO_LOGIN_TYPE 设置为 MSI 时使用。 请参阅授权时不使用机密存储
AZCOPY_MSI_OBJECT_ID 用户分配的托管标识的对象 ID。 AZCOPY_AUTO_LOGIN_TYPE 设置为 MSI 时使用。 请参阅授权时不使用机密存储
AZCOPY_MSI_RESOURCE_STRING 用户分配的托管标识的资源 ID。 请参阅授权时不使用机密存储
AZCOPY_PACE_PAGE_BLOBS 页 blob 的吞吐量是否应自动调整以匹配服务限制? 默认值为 true。 设置为“false”以禁用
AZCOPY_PARALLEL_STAT_FILES 导致 AzCopy 在扫描本地文件系统时查找并行线程上的文件属性。 线程是从 AZCOPY_CONCURRENT_SCAN 定义的池绘制的。 将此值设置为 true 可提高 Linux 上的扫描性能。 不需要或不推荐在 Windows 上执行此操作。
AZCOPY_REQUEST_TRY_TIMEOUT 设置 AzCopy 在 AzCopy 超时之前应尝试为每个请求上传文件的分钟数。
AZCOPY_SHOW_PERF_STATES 如果设置为“任何内容”,屏幕上的输出将包括按状态的区块计数
AZCOPY_SPA_APPLICATION_ID 服务主体应用注册的应用程序 ID。 AZCOPY_AUTO_LOGIN_TYPE 设置为 SPN 时使用。 请参阅授权时不使用机密存储
AZCOPY_SPA_CERT_PASSWORD 证书的密码。 AZCOPY_AUTO_LOGIN_TYPE 设置为 SPN 时使用。 请参阅授权时不使用机密存储
AZCOPY_SPA_CERT_PATH 证书文件的相对或完全限定的路径。 AZCOPY_AUTO_LOGIN_TYPE 设置为 SPN 时使用。 请参阅授权时不使用机密存储
AZCOPY_SPA_CLIENT_SECRET 客户端机密。 AZCOPY_AUTO_LOGIN_TYPE 设置为 SPN 时使用。 请参阅授权时不使用机密存储
AZCOPY_TENANT_ID 用于 OAuth 设备交互式登录的 Microsoft Entra 租户 ID。 此变量仅用于自动登录,请在调用登录命令时改为使用命令行标志。
AZCOPY_TUNE_TO_CPU 如果设置为 false,则会在优化 AzCopy 并发级别(例如,在基准命令中)时,阻止其将 CPU 使用率考虑在内。
AZCOPY_USER_AGENT_PREFIX 向默认 AzCopy 用户代理添加一个前缀,用于遥测。 将自动插入空格。
CPK_ENCRYPTION_KEY Base64 编码的 AES-256 加密密钥值。 使用客户提供的密钥对 Blob 存储操作的数据进行加密和解密时,读取和写入请求都需要此变量。 可以通过设置 --cpk-by-value=true 标志来使用客户提供的密钥。
CPK_ENCRYPTION_KEY_SHA256 加密密钥的 Base64 编码 SHA256。 使用客户提供的密钥对 Blob 存储操作的数据进行加密和解密时,读取和写入请求都需要此变量。 可以通过设置 --cpk-by-value=true 标志来使用客户提供的密钥。
GOOGLE_APPLICATION_CREDENTIALS 服务帐户密钥文件的绝对路径 提供密钥以对 Amazon Web Services 进行授权。 使用 AzCopy 将数据从 Google Cloud Storage 复制到 Azure 存储(预览版)
GOOGLE_CLOUD_PROJECT Google 云存储空间中的服务级别遍历所需的项目 ID。
HTTPS_PROXY 为 AzCopy 配置代理设置。 将此变量设置为代理 IP 地址和代理端口号。 例如,xx.xxx.xx.xxx:xx。 如果在 Windows 中运行 AzCopy,AzCopy 会自动检测代理设置,因此你无需在 Windows 中使用此设置。 如果在 Windows 中选择使用此设置,此设置会替代自动检测。 请参阅配置代理设置

配置代理设置

若要为 AzCopy 配置代理设置,请设置 HTTPS_PROXY 环境变量。 如果在 Windows 中运行 AzCopy,AzCopy 会自动检测代理设置,因此你无需在 Windows 中使用此设置。 如果在 Windows 中选择使用此设置,此设置会替代自动检测。

操作系统 命令
Windows 在命令提示符处使用 set HTTPS_PROXY=<proxy IP>:<proxy port>
在 PowerShell 中使用 $env:HTTPS_PROXY="<proxy IP>:<proxy port>"
Linux export HTTPS_PROXY=<proxy IP>:<proxy port>
macOS export HTTPS_PROXY=<proxy IP>:<proxy port>

AzCopy 目前不支持要求通过 NTLM 或 Kerberos 进行身份验证的代理。

绕过代理

如果是在 Windows 上运行 AzCopy,并且想让它完全不使用代理(而不是自动检测设置),请使用以下命令。 使用这些设置时,AzCopy 不会寻求使用或尝试使用任何代理。

操作系统 环境 命令
Windows 命令提示符 (CMD) set HTTPS_PROXY=dummy.invalid
set NO_PROXY=*
Windows PowerShell $env:HTTPS_PROXY="dummy.invalid"
$env:NO_PROXY="*"

在其他操作系统上,如果想要不使用代理,只需不设置 HTTPS_PROXY 变量即可。

另请参阅