# Azureblob

{% code fullWidth="true" %}

```
名称:
   singularity storage update azureblob - 微软Azure Blob Storage

用法:
   singularity storage update azureblob [命令选项] <名称|ID>

描述:
   --account
      Azure存储账户名称。
      
      设置当前的Azure存储账户名称。
      
      留空以使用SAS URL或Emulator，否则需要进行设置。
      
      如果此项留空，并且env_auth已经设置，则会尝试从环境变量`AZURE_STORAGE_ACCOUNT_NAME`读取。
      

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

   --key
      存储账户的共享密钥。
      
      留空以使用SAS URL或Emulator。

   --sas-url
      仅容器级访问的SAS URL。
      
      如果使用账户/密钥或Emulator，请留空。

   --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'，则使用本地存储 emulator。
      
      如果使用真实的Azure存储终结点，请留空。

   --endpoint
      服务的终结点。
      
      通常留空。

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

   --chunk-size
      上传分块大小。
      
      请注意，这些块存储在内存中，并且可能存在"--transfers" * "--azureblob-upload-concurrency"数量的块同时存储在内存中。

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

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

   --access-tier
      blob的访问层级：hot、cool或archive。
      
      归档的blob可以通过将访问层级设置为hot或cool来恢复。如果打算使用默认访问层级，请留空，该访问层级设置在账户级别上。
      
      如果没有指定“访问层级”，rclone不会应用任何层级。rclone在上传时执行“Set Tier”操作，如果对象未修改，则指定新层级的"访问层级"不会产生任何影响。如果远程端的blob处于“archive tier”，则不允许从远程端执行数据传输操作。用户应该首先通过将blob分层为“Hot”或“Cool”来还原。

   --archive-tier-delete
      在覆盖之前删除存档层级的blob。
      
      由于无法更新存档层级的blob，所以如果不设置此标志，如果尝试更新存档层级的blob，则rclone将会产生以下错误：
      
          无法更新存档层级的blob而没有--azureblob-archive-tier-delete标志
      
      设置此标志后，在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或container。

      例子：
         | <unset>   | 只能通过授权请求访问容器及其blob。
         |           | 这是默认值。
         | blob      | 容器内的Blob数据可以通过匿名请求读取。
         | container | 允许对容器和Blob数据进行完全的公开读取访问。

   --no-check-container
      如果设置了此选项，则不会尝试检查容器是否存在或创建容器。
      
      当尝试尽量减少rclone执行的事务数时，如果您知道容器已经存在，则这可能非常有用。
      

   --no-head-object
      如果设置了此选项，则在获取对象之前不进行HEAD。
      当获取对象时节省HEAD请求可以提高性能。

选项:
   --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 [$TENANT]

   高级选项

   --access-tier value              blob的访问层级：hot、cool或archive [$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               blob列表的大小（默认: 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操作（默认: false） [$NO_HEAD_OBJECT]
   --password value                 用户的密码 [$PASSWORD]
   --public-access value            容器的公共访问级别：blob或container [$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'，则使用本地存储 emulator（默认: false） [$USE_EMULATOR]
   --use-msi                        使用托管服务标识进行身份验证（仅在Azure中有效）（默认: false） [$USE_MSI]
   --username value                 用户名（通常是电子邮件地址） [$USERNAME]

```

{% 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/update/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.
