# Azureblob

{% code fullWidth="true" %}

```markdown
名称:
   singularity storage create azureblob - Microsoft Azure Blob Storage

用法:
   singularity storage create azureblob [command options] [arguments...]

描述:
   --account
      Azure 存储帐户名称。
      
      设置正在使用的 Azure 存储帐户名称。
      
      如果要使用 SAS URL 或仿真器，请保留为空白，否则需要设置。
      
      如果此项为空，并且 env_auth 被设置，则将从环境变量 `AZURE_STORAGE_ACCOUNT_NAME` 中读取（如果可能）。

   --env-auth
      从运行时（环境变量、CLI 或MSI）中读取凭据。
      
      有关完整信息，请参阅[身份验证文档](/azureblob#authentication)。

   --key
      存储帐户的共享密钥。
      
      要使用 SAS URL 或仿真器，请保留为空白。

   --sas-url
      仅限容器访问的 SAS URL。
      
      使用帐户/密钥或仿真器时，请保留为空白。

   --tenant
      服务主体租户的 ID。也称为其目录 ID。
      
      如果使用以下内容，
      - 使用客户端密钥的服务主体
      - 使用证书的服务主体
      - 使用用户名和密码的用户
      
      则设置此项。

   --client-id
      正在使用的客户端的 ID。
      
      如果使用以下内容，
      - 使用客户端密钥的服务主体
      - 使用证书的服务主体
      - 使用用户名和密码的用户
      
      则设置此项。

   --client-secret
      是服务主体的客户端秘密之一。
      
      如果使用以下内容，
      - 使用客户端密钥的服务主体
      
      则设置此项。

   --client-certificate-path
      包含私钥的 PEM 或 PKCS12 证书文件的路径。
      
      如果使用以下内容，
      - 使用证书的服务主体
      
      则设置此项。

   --client-certificate-password
      证书文件的密码（可选项）。
      
      如果使用以下内容，
      - 使用证书的服务主体
      
      并且证书有密码，则可选地设置此项。

   --client-send-certificate-chain
      在使用证书进行身份验证时发送证书链。
      
      指定身份验证请求是否包含 x5c 标头以支持基于主题名称 / 颁发者的验证。设置为 true 时，身份验证请求将包含 x5c 标头。
      
      如果使用以下内容，
      - 使用证书的服务主体
      
      则可选地设置此项。

   --username
      用户名（通常是电子邮件地址）。
      
      如果使用以下内容，
      - 使用用户名和密码的用户
      
      则设置此项。

   --password
      用户的密码。
      
      如果使用以下内容，
      - 使用用户名和密码的用户
      
      则设置此项。

   --service-principal-file
      包含用于服务主体的凭据的文件的路径。
      
      通常保留为空白。仅在希望使用服务主体而不是交互式登录时才需要。
      
          $ az ad sp create-for-rbac --name "<name>" \
            --role "Storage Blob Data Owner" \
            --scopes "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container>" \
            > azure-principal.json
      
      有关详细信息，请参阅["创建 Azure 服务主体"](https://docs.microsoft.com/en-us/cli/azure/create-an-azure-service-principal-azure-cli) 和["分配对 Blob 数据访问的 Azure 角色"](https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad-rbac-cli) 页面。
      
      直接将凭据放入 rclone 配置文件的 `client_id`、`tenant` 和 `client_secret` 键中，而不是设置 `service_principal_file`，可能更加方便。

   --use-msi
      使用托管服务标识进行身份验证（仅在 Azure 中有效）。
      
      当为 true 时，使用[托管服务标识](https://docs.microsoft.com/en-us/azure/active-directory/managed-identities-azure-resources/)来对 Azure 存储进行身份验证，而不是使用 SAS 令牌或帐户密钥。
      
      如果运行该程序的 VM（SS）具有系统分配的标识，则默认情况下将使用该标识。如果资源没有系统分配的标识，但恰好有一个用户分配的标识，则将默认使用用户分配的标识。如果资源有多个用户分配的标识，则必须使用指定的 msi_object_id、msi_client_id 或 msi_mi_res_id 参数明确指定要使用的标识。

   --msi-object-id
      要使用的用户分配的 MSI 的对象 ID（如果有）。
      
      如果指定了 msi_client_id 或 msi_mi_res_id，请保留为空白。

   --msi-client-id
      要使用的用户分配的 MSI 的客户端 ID（如果有）。
      
      如果指定了 msi_object_id 或 msi_mi_res_id，请保留为空白。

   --msi-mi-res-id
      要使用的用户分配的 MSI 的 Azure 资源 ID（如果有）。
      
      如果指定了 msi_client_id 或 msi_object_id，请保留为空白。

   --use-emulator
      如果提供为 'true'，则使用本地存储仿真器。
      
      如果使用真实的 Azure 存储端点，请保留为空白。

   --endpoint
      服务的端点。
      
      通常保留为空白。

   --upload-cutoff
      切换到分块上传的截止点（<= 256 MiB）（已弃用）。

   --chunk-size
      上传块大小。
      
      请注意，此项存储在内存中，同一文件可能使用 "--transfers" * "--azureblob-upload-concurrency" 个块同时存储在内存中。

   --upload-concurrency
      多部分上传的并发数。
      
      同时上传文件的相同块数的并发数。
      
      如果您通过高速链接上传少量的大文件，并且这些上传未充分利用您的带宽，则增加此数值可能有助于加快传输速度。
      
      在测试中，上传速度几乎与上传并发线性增长。例如，要填满一个千兆位编码器，可能需要将此数值提高到 64。请注意，这将使用更多内存。
      
      请注意，块存储在内存中，并且可能存在 "--transfers" * "--azureblob-upload-concurrency" 个块同时存储在内存中。

   --list-chunk
      存储列表的大小。
      
      这设置了每个列表块中请求的 blob 数量。默认值为最大数 5000。每个 “列出 blob” 请求允许使用 2 分钟每兆字节完成。如果操作平均每兆字节超过 2 分钟，则会超时（[来源](https://docs.microsoft.com/en-us/rest/api/storageservices/setting-timeouts-for-blob-service-operations#exceptions-to-default-timeout-interval)）。这可以用来限制要返回的 blob 项数，以避免超时。

   --access-tier
      Blob 的访问层：热、冷或存档。
      
      存档 blob 可以通过将访问层设置为热或冷来恢复。如果打算使用默认的访问层，则保留为空白。
      
      如果没有指定 "访问层"，rclone 不应用任何层。在上传时，rclone 在 blob 上执行 "Set Tier" 操作，如果对象未被修改，则将 "访问层" 指定为新的层将没有效果。如果远程的 blob 处于 "存档层"，则不允许尝试从远程执行数据传输操作。用户应该首先通过将 blob 划分到 "热" 或 "冷" 来恢复。

   --archive-tier-delete
      在覆盖之前删除存档层 blob。
      
      无法更新存档层 blob。因此，如果尝试更新存档层 blob，则 rclone 将生成错误：
      
          without --azureblob-archive-tier-delete，无法更新存档层 blob
      
      如果设置了此标志，则在 rclone 尝试覆盖存档层 blob 之前，将删除现有 blob 并上传其替代品。如果上传失败（与更新普通 blob 不同）可能导致数据丢失，并且可能会产生更多费用，因为较早地删除存档层 blob 可能会产生费用。

   --disable-checksum
      不要使用对象元数据存储 MD5 校验和。
      
      通常，rclone 会在上传之前计算输入的 MD5 校验和，以便将其添加到对象的元数据中。这对于数据完整性检查很有用，但对于大文件来说可能会导致长时间的延迟才能开始上传。

   --memory-pool-flush-time
      内部内存缓冲池将刷新的频率。
      
      需要额外缓冲区进行上传（如分块上传）将使用内存池进行分配。
      此选项控制要将未使用的缓冲区从池中删除的频率。

   --memory-pool-use-mmap
      是否在内部内存池中使用 mmap 缓冲区。

   --encoding
      后端的编码方式。
      
      更多信息，请参阅[概述中的编码部分](/overview/#encoding)。

   --public-access
      容器的公共访问级别：blob 或容器。

      示例：
         | <unset>   | 容器及其 Blob 仅能通过授权请求访问。
         |           | 这是默认值。
         | blob      | 此容器中的 Blob 数据可以通过匿名请求读取。
         | container | 容器和 Blob 数据可以完全公开读取。

   --no-check-container
      如果设置，则不尝试检查容器是否存在或创建容器。
      
      当希望最小化 rclone 的交易次数时，这很有用，如果您知道容器已经存在。

   --no-head-object
      如果设置，获取对象时不执行 HEAD 再 GET。

选项:
   --account value                      Azure 存储帐户名称。[$ACCOUNT]
   --client-certificate-password value  证书文件的密码（可选项）。[$CLIENT_CERTIFICATE_PASSWORD]
   --client-certificate-path value      包含包括私钥在内的 PEM 或 PKCS12 证书文件的路径。[$CLIENT_CERTIFICATE_PATH]
   --client-id value                    正在使用的客户端的 ID。[$CLIENT_ID]
   --client-secret value                是服务主体的客户端秘密之一。[$CLIENT_SECRET]
   --env-auth                           从运行时（环境变量、CLI 或 MSI）中读取凭据。（默认值：false）[$ENV_AUTH]
   --help, -h                           查看帮助
   --key value                          存储帐户的共享密钥。[$KEY]
   --sas-url value                      仅限于容器访问的 SAS URL。[$SAS_URL]
   --tenant value                       服务主体租户的 ID。也称为其目录 ID。[$TENANT]

   Advanced

   --access-tier value              Blob 的访问层：热、冷或存档。[$ACCESS_TIER]
   --archive-tier-delete            在覆盖之前删除存档层 blob。（默认值：false）[$ARCHIVE_TIER_DELETE]
   --chunk-size value               上传块大小。（默认值："4Mi"）[$CHUNK_SIZE]
   --client-send-certificate-chain  在使用证书进行身份验证时发送证书链。（默认值：false）[$CLIENT_SEND_CERTIFICATE_CHAIN]
   --disable-checksum               不要使用对象元数据存储 MD5 校验和。（默认值：false）[$DISABLE_CHECKSUM]
   --encoding value                 后端的编码方式。（默认值："Slash,BackSlash,Del,Ctl,RightPeriod,InvalidUtf8"）[$ENCODING]
   --endpoint value                 服务的端点。[$ENDPOINT]
   --list-chunk value               存储列表的大小。（默认值：5000）[$LIST_CHUNK]
   --memory-pool-flush-time value   内部内存缓冲池将刷新的频率。（默认值："1m0s"）[$MEMORY_POOL_FLUSH_TIME]
   --memory-pool-use-mmap           是否在内部内存池中使用 mmap 缓冲区。（默认值：false）[$MEMORY_POOL_USE_MMAP]
   --msi-client-id value            要使用的用户分配的 MSI 的客户端 ID（如果有）。[$MSI_CLIENT_ID]
   --msi-mi-res-id value            要使用的用户分配的 MSI 的 Azure 资源 ID（如果有）。[$MSI_MI_RES_ID]
   --msi-object-id value            要使用的用户分配的 MSI 的对象 ID（如果有）。[$MSI_OBJECT_ID]
   --no-check-container             如果设置，则不尝试检查容器是否存在或创建容器。（默认值：false）[$NO_CHECK_CONTAINER]
   --no-head-object                 如果设置，获取对象时不执行 HEAD 再 GET。（默认值：false）[$NO_HEAD_OBJECT]
   --password value                 用户的密码。[$PASSWORD]
   --public-access value            容器的公共访问级别：blob 或容器。[$PUBLIC_ACCESS]
   --service-principal-file value   包含用于服务主体的凭据的文件的路径。[$SERVICE_PRINCIPAL_FILE]
   --upload-concurrency value       多部分上传的并发数。（默认值：16）[$UPLOAD_CONCURRENCY]
   --upload-cutoff value            切换到分块上传的截止点（<= 256 MiB）（已弃用）。[$UPLOAD_CUTOFF]
   --use-emulator                   如果提供为 'true'，则使用本地存储仿真器。（默认值：false）[$USE_EMULATOR]
   --use-msi                        使用托管服务标识进行身份验证（仅在 Azure 中有效）。 （默认值：false）[$USE_MSI]
   --username value                 用户名（通常是电子邮件地址）。[$USERNAME]

   General

   --name value  存储的名称（默认值：自动生成）
   --path value  存储的路径
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://data-programs.gitbook.io/singularity/zh/cli-reference/storage/create/azureblob.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
