使用 IoT Edge 上的 Azure Blob 存储在边缘中存储数据Store data at the edge with Azure Blob Storage on IoT Edge

IoT Edge 上的 Azure Blob 存储在边缘提供了块 blob追加 Blob 存储解决方案。Azure Blob Storage on IoT Edge provides a block blob and append blob storage solution at the edge. IoT Edge 设备上的 Blob 存储模块的行为类似于 Azure blob 服务,但 Blob 存储在本地 IoT Edge 设备上。A blob storage module on your IoT Edge device behaves like an Azure blob service, except the blobs are stored locally on your IoT Edge device. 你可以使用相同的 Azure 存储 SDK 方法或已经习惯的 blob API 调用来访问 blob。You can access your blobs using the same Azure storage SDK methods or blob API calls that you're already used to. 本文说明与 IoT Edge 容器中的 Azure Blob 存储相关的概念,该容器在 IoT Edge 设备上运行 Blob 服务。This article explains the concepts related to Azure Blob Storage on IoT Edge container that runs a blob service on your IoT Edge device.

此模块适用于以下方案:This module is useful in scenarios:

  • 在处理数据或将其传输到云中之前,需在本地存储数据。where data needs to be stored locally until it can be processed or transferred to the cloud. 这些数据可以是视频、图像、财务数据、医疗数据或者任何其他非结构化数据。This data can be videos, images, finance data, hospital data, or any other unstructured data.
  • 设备位于连接受限的位置。when devices are located in a place with limited connectivity.
  • 需要在本地有效处理数据以便以较低的延迟访问数据,并尽快地对紧急情况做出反应。when you want to efficiently process the data locally to get low latency access to the data, such that you can respond to emergencies as quickly as possible.
  • 需要降低带宽成本,避免将 TB 量级的数据传输到云中。when you want to reduce bandwidth costs and avoid transferring terabytes of data to the cloud. 可在本地处理数据,并仅将已处理的数据发送到云中。You can process the data locally and send only the processed data to the cloud.

此模块附带 deviceToCloudUploaddeviceAutoDelete 功能。This module comes with deviceToCloudUpload and deviceAutoDelete features.

deviceToCloudUpload 是一个可配置的功能。deviceToCloudUpload is a configurable functionality. 此函数可将本地 Blob 存储中的数据自动上传到 Azure,并支持间歇性的 Internet 连接。This function automatically uploads the data from your local blob storage to Azure with intermittent internet connectivity support. 该功能允许:It allows you to:

  • 启用/禁用 deviceToCloudUpload 功能。Turn ON/OFF the deviceToCloudUpload feature.
  • 选择将数据复制到 Azure 的顺序,例如,NewestFirst 或 OldestFirst。Choose the order in which the data is copied to Azure like NewestFirst or OldestFirst.
  • 指定要将数据上传到的 Azure 存储帐户。Specify the Azure Storage account to which you want your data uploaded.
  • 指定要上传到 Azure 的容器。Specify the containers you want to upload to Azure. 此模块允许指定源和目标容器名称。This module allows you to specify both source and target container names.
  • 选择将内容上传到云存储后立即删除 Blob 的功能Choose the ability to delete the blobs immediately, after upload to cloud storage is finished
  • 执行完整 Blob 上传(使用 Put Blob 操作)和块级上传(使用 Put Block``Put Block ListAppend Block 操作)。Do full blob upload (using Put Blob operation) and block level upload (using Put Block, Put Block List and Append Block operations).

如果 Blob 由块构成,则此模块使用块级上传。This module uses block level upload, when your blob consists of blocks. 下面是一些常见场景:Here are some of the common scenarios:

  • 应用程序需要更新以前上传的块 Blob 的某些块,或将新块附加到追加 Blob;此模块只上传更新的块,而不上传整个 Blob。Your application updates some blocks of a previously uploaded block blob or appends new blocks to an append blob, this module uploads only the updated blocks and not the whole blob.
  • 当模块正在上传 Blob 时,Internet 连接断开;连接恢复后,该模块只上传剩余的块,而不上传整个 Blob。The module is uploading blob and internet connection goes away, when the connectivity is back again it uploads only the remaining blocks and not the whole blob.

如果在 Blob 上传期间发生意外的进程终止(例如电源故障),当模块重新联机后,将再次上传需要上传的所有块。If an unexpected process termination (like power failure) happens during a blob upload, all blocks that were due for the upload will be uploaded again once the module comes back online.

deviceAutoDelete 是一个可配置的功能。deviceAutoDelete is a configurable functionality. 超过指定的持续时间(度量单位为分钟)时,此函数将自动从本地存储中删除 Blob。This function automatically deletes your blobs from the local storage when the specified duration (measured in minutes) expires. 该功能允许:It allows you to:

  • 启用/禁用 deviceAutoDelete 功能。Turn ON/OFF the deviceAutoDelete feature.
  • 指定以分钟为单位的时间 (deleteAfterMinutes),该时间过后会自动删除这些 Blob。Specify the time in minutes (deleteAfterMinutes) after which the blobs will be automatically deleted.
  • 选择在 deleteAfterMinutes 值到期后保留上传的 Blob 的功能。Choose the ability to retain the blob while it's uploading if the deleteAfterMinutes value expires.

先决条件Prerequisites

Azure IoT Edge 设备:An Azure IoT Edge device:

  • 可以按照适用于 LinuxWindows 设备的快速入门中的步骤,将开发计算机或虚拟机用作 IoT Edge 设备。You can use your development machine or a virtual machine as an IoT Edge device by following the steps in the quickstart for Linux or Windows devices.

  • 有关支持的操作系统和体系结构的列表,请参阅 Azure IoT Edge 支持的系统Refer to Azure IoT Edge supported systems for a list of supported operating systems and architectures. IoT Edge 模块上的 Azure Blob 存储支持以下体系结构:The Azure Blob Storage on IoT Edge module supports following architectures:

    • Windows AMD64Windows AMD64
    • Linux AMD64Linux AMD64
    • Linux ARM32Linux ARM32
    • Linux ARM64(预览版)Linux ARM64 (preview)

云资源:Cloud resources:

Azure 中的标准层 IoT 中心A standard-tier IoT Hub in Azure.

deviceToCloudUpload 和 deviceAutoDelete 属性deviceToCloudUpload and deviceAutoDelete properties

使用模块的所需属性设置 deviceToCloudUploadPropertiesdeviceAutoDeletePropertiesUse the module's desired properties to set deviceToCloudUploadProperties and deviceAutoDeleteProperties. 可以在部署期间设置所需属性,或者,以后可以通过编辑模块孪生来更改这些属性,而无需重新部署。Desired properties can be set during deployment or changed later by editing the module twin without the need to redeploy. 我们建议检查“模块孪生”中的 reported configurationconfigurationValidation,以确保正确传播值。We recommend checking the "Module Twin" for reported configuration and configurationValidation to make sure values are correctly propagated.

deviceToCloudUploadPropertiesdeviceToCloudUploadProperties

此设置的名称为 deviceToCloudUploadPropertiesThe name of this setting is deviceToCloudUploadProperties. 如果使用 IoT Edge 模拟器,请将这些属性的值设置为相关环境变量,可以在说明部分中找到它们。If you are using the IoT Edge simulator, set the values to the related environment variables for these properties, which you can find in the explanation section.

属性Property 可能的值Possible Values 说明Explanation
uploadOnuploadOn true、falsetrue, false 默认设置为 falseSet to false by default. 若要启用此功能,请将此字段设置为 trueIf you want to turn the feature on, set this field to true.

环境变量:deviceToCloudUploadProperties__uploadOn={false,true}Environment variable: deviceToCloudUploadProperties__uploadOn={false,true}
uploadOrderuploadOrder NewestFirst、OldestFirstNewestFirst, OldestFirst 用于选择将数据复制到 Azure 的顺序。Allows you to choose the order in which the data is copied to Azure. 默认设置为 OldestFirstSet to OldestFirst by default. 顺序由 Blob 的上次修改时间确定。The order is determined by last modified time of Blob.

环境变量:deviceToCloudUploadProperties__uploadOrder={NewestFirst,OldestFirst}Environment variable: deviceToCloudUploadProperties__uploadOrder={NewestFirst,OldestFirst}
cloudStorageConnectionStringcloudStorageConnectionString "DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>;EndpointSuffix=<your end point suffix>" 是一个连接字符串,用于指定要将数据上传到的存储帐户。"DefaultEndpointsProtocol=https;AccountName=<your Azure Storage Account Name>;AccountKey=<your Azure Storage Account Key>;EndpointSuffix=<your end point suffix>" is a connection string that allows you to specify the storage account to which you want your data uploaded. 指定 Azure Storage Account NameAzure Storage Account KeyEnd point suffixSpecify Azure Storage Account Name, Azure Storage Account Key, End point suffix. 添加用于上传数据的适当 Azure EndpointSuffix,它在全局 Azure、政府 Azure 和 Microsoft Azure Stack 中是不同的。Add appropriate EndpointSuffix of Azure where data will be uploaded, it varies for Global Azure, Government Azure, and Microsoft Azure Stack.

可以选择在此处选择指定 Azure 存储 SAS 连接字符串。You can choose to specify Azure Storage SAS connection string here. 但是,在此属性过期时必须将其更新。But you have to update this property when it expires.

环境变量:deviceToCloudUploadProperties__cloudStorageConnectionString=<connection string>Environment variable: deviceToCloudUploadProperties__cloudStorageConnectionString=<connection string>
storageContainersForUploadstorageContainersForUpload "<source container name1>": {"target": "<target container name>"},"<source container name1>": {"target": "<target container name>"},

"<source container name1>": {"target": "%h-%d-%m-%c"},"<source container name1>": {"target": "%h-%d-%m-%c"},

"<source container name1>": {"target": "%d-%c"}
用于指定要上传到 Azure 的容器名称。Allows you to specify the container names you want to upload to Azure. 此模块允许指定源和目标容器名称。This module allows you to specify both source and target container names. 如果未指定目标容器名称,系统会自动分配 <IoTHubName>-<IotEdgeDeviceID>-<ModuleName>-<SourceContainerName> 作为容器名称。If you don't specify the target container name, it will automatically assign the container name as <IoTHubName>-<IotEdgeDeviceID>-<ModuleName>-<SourceContainerName>. 可以创建目标容器名称的模板字符串,具体请查看“可能的值”列。You can create template strings for target container name, check out the possible values column.
* %h -> IoT 中心名称(3 到 50 个字符)。* %h -> IoT Hub Name (3-50 characters).
* %d -> IoT Edge 设备 ID(1 到 129 个字符)。* %d -> IoT Edge Device ID (1 to 129 characters).
* %m -> 模块名称(1 到 64 个字符)。* %m -> Module Name (1 to 64 characters).
* %c -> 源容器名称(3 到 63 个字符)。* %c -> Source Container Name (3 to 63 characters).

容器名称的最大大小为 63 个字符。尽管系统会自动分配目标容器名称,但如果容器大小超过 63 个字符,系统会将每个部分(IoTHubName、IotEdgeDeviceID、ModuleName、SourceContainerName)修剪为 15 个字符。Maximum size of the container name is 63 characters, while automatically assigning the target container name if the size of container exceeds 63 characters it will trim each section (IoTHubName, IotEdgeDeviceID, ModuleName, SourceContainerName) to 15 characters.

环境变量:deviceToCloudUploadProperties__storageContainersForUpload__<sourceName>__target=<targetName>Environment variable: deviceToCloudUploadProperties__storageContainersForUpload__<sourceName>__target=<targetName>
deleteAfterUploaddeleteAfterUpload true、falsetrue, false 默认设置为 falseSet to false by default. 设置为 true 时,上传到云存储完成后将自动删除数据。When it is set to true, it will automatically delete the data when upload to cloud storage is finished.

警告:如果使用的是追加 Blob,则此设置将在上传成功后从本地存储中删除追加 Blob,并且以后对这些块执行的任何追加块操作都将失败。CAUTION: If you are using append blobs, this setting will delete append blobs from local storage after a successful upload, and any future Append Block operations to those blobs will fail. 如果你的应用程序不经常追加操作或不支持连续追加操作,请谨慎使用此设置,不要启用此设置Use this setting with caution, do not enable this if your application does infrequent append operations or does not support continuous append operations

环境变量:deviceToCloudUploadProperties__deleteAfterUpload={false,true}Environment variable: deviceToCloudUploadProperties__deleteAfterUpload={false,true}.

deviceAutoDeletePropertiesdeviceAutoDeleteProperties

此设置的名称为 deviceAutoDeletePropertiesThe name of this setting is deviceAutoDeleteProperties. 如果使用 IoT Edge 模拟器,请将这些属性的值设置为相关环境变量,可以在说明部分中找到它们。If you are using the IoT Edge simulator, set the values to the related environment variables for these properties, which you can find in the explanation section.

属性Property 可能的值Possible Values 说明Explanation
deleteOndeleteOn true、falsetrue, false 默认设置为 falseSet to false by default. 若要启用此功能,请将此字段设置为 trueIf you want to turn the feature on, set this field to true.

环境变量:deviceAutoDeleteProperties__deleteOn={false,true}Environment variable: deviceAutoDeleteProperties__deleteOn={false,true}
deleteAfterMinutesdeleteAfterMinutes <minutes> 以分钟为单位指定时间。Specify the time in minutes. 达到此值时,模块会自动删除本地存储中的 Blob。The module will automatically delete your blobs from local storage when this value expires.

环境变量:deviceAutoDeleteProperties__ deleteAfterMinutes=<minutes>Environment variable: deviceAutoDeleteProperties__ deleteAfterMinutes=<minutes>
retainWhileUploadingretainWhileUploading true、falsetrue, false 默认情况下,它设置为 true。在 deleteAfterMinutes 分钟过后,它会保留上传到云存储的 Blob。By default it is set to true, and it will retain the blob while it is uploading to cloud storage if deleteAfterMinutes expires. 可以将它设置为 false。在 deleteAfterMinutes 分钟过后,它会删除数据。You can set it to false and it will delete the data as soon as deleteAfterMinutes expires. 注意:要使此属性生效,应将 uploadOn 设置为 true。Note: For this property to work uploadOn should be set to true.

警告:如果使用的是追加 Blob,则此设置将在值过期时从本地存储中删除追加 Blob,并且以后对这些块执行的任何追加块操作都将失败。CAUTION: If you are using append blobs, this setting will delete append blobs from local storage when the value expires, and any future Append Block operations to those blobs will fail. 你可能需要确保到期值足够大,以满足应用程序执行追加操作的预期频率。You may want to make sure the expiry value is large enough for the expected frequency of append operations performed by your application.

环境变量:deviceAutoDeleteProperties__retainWhileUploading={false,true}Environment variable: deviceAutoDeleteProperties__retainWhileUploading={false,true}

使用 SMB 共享作为本地存储Using SMB share as your local storage

在 Windows 主机上部署此模块的 Windows 容器时,可以提供 SMB 共享作为本地存储路径。You can provide SMB share as your local storage path, when you deploy Windows container of this module on Windows host.

确保 SMB 共享和 IoT 设备位于相互信任的域中。Make sure the SMB share and IoT device are in mutually trusted domains.

可以运行 New-SmbGlobalMapping PowerShell 命令来映射运行 Windows 的 IoT 设备本地的 SMB 共享。You can run New-SmbGlobalMapping PowerShell command to map the SMB share locally on the IoT device running Windows.

下面是配置步骤:Below are the configuration steps:

$creds = Get-Credential
New-SmbGlobalMapping -RemotePath <remote SMB path> -Credential $creds -LocalPath <Any available drive letter>

例如:For example:

$creds = Get-Credential
New-SmbGlobalMapping -RemotePath \\contosofileserver\share1 -Credential $creds -LocalPath G:

此命令使用凭据对远程 SMB 服务器进行身份验证。This command will use the credentials to authenticate with the remote SMB server. 然后,将远程共享路径映射到 G: 驱动器号(可以是任何其他可用的驱动器号)。Then, map the remote share path to G: drive letter (can be any other available drive letter). 现在,IoT 设备的数据卷已映射到 G: 驱动器上的路径。The IoT device now have the data volume mapped to a path on the G: drive.

确保 IoT 设备中的用户可以读取/写入远程 SMB 共享。Make sure the user in IoT device can read/write to the remote SMB share.

在部署中,<storage mount> 的值可以是 G:/ContainerData:C:/BlobRootFor your deployment the value of <storage mount> can be G:/ContainerData:C:/BlobRoot.

对 Linux 上的容器用户授予目录访问权限Granting directory access to container user on Linux

如果在 Linux 容器的 create 选项中对存储使用了卷装入点作为存储,则无需执行任何额外的步骤;但如果使用了绑定装入点,则需要执行这些步骤才能正常运行服务。If you have used volume mount for storage in your create options for Linux containers then you don't have to do any extra steps, but if you used bind mount then these steps are required to run the service correctly.

如果遵循最低特权原则将用户的访问权限限制为他们执行其工作所需的最低权限,则此模块将包含一个用户(名称:absie,ID:11000)和一个用户组(名称:absie,ID:11000)。Following the principle of least privilege to limit the access rights for users to bare minimum permissions they need to perform their work, this module includes a user (name: absie, ID: 11000) and a user group (name: absie, ID: 11000). 如果容器以 root 身份启动(默认用户为 root),则我们的服务将以低特权的 absie 用户身份启动。If the container is started as root (default user is root), our service will be started as the low-privilege absie user.

由于存在此行为,要使服务正常运行,对主机路径绑定的权限配置至关重要,否则服务将会崩溃并出现拒绝访问错误。This behavior makes configuration of the permissions on host path binds crucial for the service to work correctly, otherwise the service will crash with access denied errors. 目录绑定中使用的路径需可由容器用户(例如 absie 11000)访问。The path that is used in directory binding needs to be accessible by the container user (example: absie 11000). 可以通过在主机上执行以下命令,来为容器用户授予对目录的访问权限:You can grant the container user access to the directory by executing the commands below on the host:

sudo chown -R 11000:11000 <blob-dir>
sudo chmod -R 700 <blob-dir>

例如:For example:

sudo chown -R 11000:11000 /srv/containerdata
sudo chmod -R 700 /srv/containerdata

如果需要以非 absie 的用户身份运行服务,可以在部署清单中“User”属性下的 createOptions 中指定自定义用户 ID。If you need to run the service as a user other than absie, you can specify your custom user ID in createOptions under "User" property in your deployment manifest. 在这种情况下,需要使用默认组 ID 或 root 组 ID 0In such case you need to use default or root group ID 0.

"createOptions": {
  "User": "<custom user ID>:0"
}

现在,为容器用户授予对目录的访问权限Now, grant the container user access to the directory

sudo chown -R <user ID>:<group ID> <blob-dir>
sudo chmod -R 700 <blob-dir>

配置日志文件Configure log files

若要了解如何为模块配置日志文件,请参阅这些生产最佳做法For information on configuring log files for your module, see these production best practices.

连接到 blob 存储模块Connect to your blob storage module

可以使用为模块配置的帐户名和帐户密钥来访问 IoT Edge 设备上的 blob 存储。You can use the account name and account key that you configured for your module to access the blob storage on your IoT Edge device.

将你的 IoT Edge 设备指定为对其进行的任何存储请求的 blob 终结点。Specify your IoT Edge device as the blob endpoint for any storage requests that you make to it. 你可以使用 IoT Edge 设备信息和配置的帐户名为显式存储终结点创建连接字符串You can Create a connection string for an explicit storage endpoint using the IoT Edge device information and the account name that you configured.

  • 对于部署在设备上的模块,如果该设备上运行 IoT Edge 上的 Azure Blob 存储模块,则 Blob 终结点为 http://<module name>:11002/<account name>For modules that are deployed on the same device as where the Azure Blob Storage on IoT Edge module is running, the blob endpoint is: http://<module name>:11002/<account name>.
  • 对于在其他设备上运行的模块或应用程序,必须为网络选择正确的终结点。For modules or applications running on a different device, you have to choose the right endpoint for your network. 根据网络设置选择终结点格式,使来自外部模块或应用程序的数据流量可以抵达 IoT Edge 模块上运行 Azure Blob 存储的设备。Depending on your network setup, choose an endpoint format such that the data traffic from your external module or application can reach the device running the Azure Blob Storage on IoT Edge module. 此方案的 Blob 终结点是下列其中一项:The blob endpoint for this scenario is one of:
    • http://<device IP >:11002/<account name>
    • http://<IoT Edge device hostname>:11002/<account name>
    • http://<fully qualified domain name>:11002/<account name>

重要

调用模块时,Azure IoT Edge 区分大小写,存储 SDK 也默认为小写。Azure IoT Edge is case-sensitive when you make calls to modules, and the Storage SDK also defaults to lowercase. 虽然在 Azure 市场中此模块的名称为 AzureBlobStorageonIoTEdge,但将名称更改为小写有助于确保与 IoT Edge 上的 Azure Blob 存储模块建立的连接不会中断。Although the name of the module in the Azure Marketplace is AzureBlobStorageonIoTEdge, changing the name to lowercase helps to ensure that your connections to the Azure Blob Storage on IoT Edge module aren't interrupted.

Azure Blob 存储快速入门示例Azure Blob Storage quickstart samples

Azure Blob 存储文档包括多种语言的快速入门示例代码。The Azure Blob Storage documentation includes quickstart sample code in several languages. 可以通过将 Blob 终结点更改为连接到本地 Blob 存储模块来运行这些示例,以测试 IoT Edge 上的 Azure Blob 存储。You can run these samples to test Azure Blob Storage on IoT Edge by changing the blob endpoint to connect to your local blob storage module.

以下快速入门示例使用 IoT Edge 也同样支持的语言,因此,你可以将它们作为 IoT Edge 模块与 Blob 存储模块一起部署:The following quickstart samples use languages that are also supported by IoT Edge, so you could deploy them as IoT Edge modules alongside the blob storage module:

  • .NET.NET
  • PythonPython
    • Python SDK 2.1 之前的版本存在一个已知问题,即模块不返回 blob 创建时间。Versions before V2.1 of the Python SDK have a known issue where the module does not return blob creation time. 由于该问题,某些方法(如 list blobs)无法正常工作。Because of that issue, some methods like list blobs does not work. 解决方法是,将 blob 客户端上的 API 版本显式设置为“2017-04-17”。As a workaround, explicitly set the API version on the blob client to '2017-04-17'. 示例:block_blob_service._X_MS_VERSION = '2017-04-17'Example: block_blob_service._X_MS_VERSION = '2017-04-17'
    • 追加 Blob 示例Append Blob Sample
  • Node.jsNode.js
  • JS/HTMLJS/HTML
  • RubyRuby
  • GoGo
  • PHPPHP

通过 Azure 存储资源管理器连接到本地存储Connect to your local storage with Azure Storage Explorer

可以使用 Azure 存储资源管理器连接到本地存储帐户。You can use Azure Storage Explorer to connect to your local storage account.

  1. 下载并安装 Azure 存储资源管理器Download and install Azure Storage Explorer

  2. 使用连接字符串连接到 Azure 存储Connect to Azure Storage using a connection string

  3. 提供连接字符串:DefaultEndpointsProtocol=http;BlobEndpoint=http://<host device name>:11002/<your local account name>;AccountName=<your local account name>;AccountKey=<your local account key>;Provide connection string: DefaultEndpointsProtocol=http;BlobEndpoint=http://<host device name>:11002/<your local account name>;AccountName=<your local account name>;AccountKey=<your local account key>;

  4. 完成用于连接的步骤。Go through the steps to connect.

  5. 在本地存储帐户中创建容器Create container inside your local storage account

  6. 开始将文件作为块 Blob 或追加 Blob 上传。Start uploading files as Block blobs or Append Blobs.

    备注

    此模块不支持页 Blob。This module does not support Page blobs.

  7. 也可以选择在存储资源管理器中连接 Azure 存储帐户。You can choose to connect your Azure storage accounts in Storage Explorer, too. 此配置提供适用于本地存储帐户和 Azure 存储帐户的单一视图。This configuration gives you a single view for both your local storage account and Azure storage account

受支持的存储操作Supported storage operations

IoT Edge 上的 Blob 存储模块使用 Azure 存储 SDK,并与适用于块 Blob 终结点的 2017-04-17 版 Azure 存储 API 保持一致。Blob storage modules on IoT Edge use the Azure Storage SDKs, and are consistent with the 2017-04-17 version of the Azure Storage API for block blob endpoints.

由于并非所有 Azure Blob 存储操作都受 IoT Edge 上的 Azure Blob 存储支持,因此此部分列出了每项操作的状态。Because not all Azure Blob Storage operations are supported by Azure Blob Storage on IoT Edge, this section lists the status of each.

帐户Account

受支持:Supported:

  • 列出容器List containers

不受支持:Unsupported:

  • 获取和设置 blob 服务属性Get and set blob service properties
  • 预检 blob 请求Preflight blob request
  • 获取 blob 服务统计信息Get blob service stats
  • 获取帐户信息Get account information

容器Containers

受支持:Supported:

  • 创建和删除容器Create and delete container
  • 获取容器属性和元数据Get container properties and metadata
  • 列出 BlobList blobs
  • 获取和设置容器 ACLGet and set container ACL
  • 设置容器元数据Set container metadata

不受支持:Unsupported:

  • 租用容器Lease container

BlobBlobs

受支持:Supported:

  • 放置、获取和删除 blobPut, get, and delete blob
  • 获取和设置 blob 属性Get and set blob properties
  • 获取和设置 blob 元数据Get and set blob metadata

不受支持:Unsupported:

  • 租用 blobLease blob
  • 获取 blob 快照Snapshot blob
  • 复制和中止复制 blobCopy and abort copy blob
  • 撤销删除 blobUndelete blob
  • 设置 blob 层Set blob tier

块 BlobBlock blobs

受支持:Supported:

  • 放置块Put block
  • 放置和获取块列表Put and get block list

不受支持:Unsupported:

  • 放置来自 URL 的块Put block from URL

追加 BlobAppend blobs

受支持:Supported:

  • 追加块Append block

不受支持:Unsupported:

  • 来自 URL 的追加块Append block from URL

发行说明Release Notes

这是此模块在 Docker 中心的发行说明Here are the release notes in docker hub for this module

建议Suggestions

你的反馈对我们很重要,我们的目标是使此模块及其功能有用且易用。Your feedback is important to us to make this module and its features useful and easy to use. 请分享你的反馈并告诉我们该如何改进。Please share your feedback and let us know how we can improve.

你可以通过 absiotfeedback@microsoft.com 联系我们You can reach us at absiotfeedback@microsoft.com

后续步骤Next steps

了解如何在 IoT Edge 上部署 Azure Blob 存储Learn how to Deploy Azure Blob Storage on IoT Edge

关注 IoT Edge 上的Azure Blob 存储博客,随时了解最新的更新和公告Stay up-to-date with recent updates and announcement in the Azure Blob Storage on IoT Edge blog