Skip to content

Commit 2008345

Browse files
Merge pull request #299952 from DENKEN02MSFT/Top50_patricka_Row20
Top50 - row 20
2 parents a93dcd3 + 5c0a755 commit 2008345

File tree

1 file changed

+22
-29
lines changed

1 file changed

+22
-29
lines changed

articles/iot-edge/how-to-store-data-blob.md

Lines changed: 22 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Understand how to use Azure Blob Storage on IoT Edge including feat
44
author: PatAltimore
55
ms.author: patricka
66
ms.reviewer: arduppal
7-
ms.date: 06/06/2024
7+
ms.date: 05/12/2025
88
ms.topic: concept-article
99
ms.service: azure-iot-edge
1010
ms.custom: linux-related-content
@@ -15,14 +15,14 @@ services: iot-edge
1515

1616
[!INCLUDE [iot-edge-version-all-supported](includes/iot-edge-version-all-supported.md)]
1717

18-
Azure Blob Storage on IoT Edge provides a [block blob](/rest/api/storageservices/understanding-block-blobs--append-blobs--and-page-blobs#about-block-blobs) and [append blob](/rest/api/storageservices/understanding-block-blobs--append-blobs--and-page-blobs#about-append-blobs) storage solution at the 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. You can access your blobs using the same Azure storage SDK methods or blob API calls that you're already used to. This article explains the concepts related to Azure Blob Storage on IoT Edge container that runs a blob service on your IoT Edge device.
18+
Azure Blob Storage on IoT Edge provides a [block blob](/rest/api/storageservices/understanding-block-blobs--append-blobs--and-page-blobs#about-block-blobs) and [append blob](/rest/api/storageservices/understanding-block-blobs--append-blobs--and-page-blobs#about-append-blobs) storage solution at the 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. You can access your blobs using the same Azure storage SDK methods or blob API calls that you're already used to. This article explains the concepts related to Azure Blob Storage on IoT Edge container that runs a blob service on your IoT Edge device.
1919

20-
This module is useful in scenarios:
20+
This module is useful in scenarios when:
2121

22-
* 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.
23-
* When devices are located in a place with limited connectivity.
24-
* 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.
25-
* 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.
22+
* 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.
23+
* Devices are located in a place with limited connectivity.
24+
* 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.
25+
* 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.
2626

2727
This module comes with **deviceToCloudUpload** and **deviceAutoDelete** features.
2828

@@ -33,7 +33,7 @@ The **deviceToCloudUpload** feature is a configurable functionality. This functi
3333
* Specify the Azure Storage account to which you want your data uploaded.
3434
* Specify the containers you want to upload to Azure. This module allows you to specify both source and target container names.
3535
* Choose the ability to delete the blobs immediately, after upload to cloud storage is finished
36-
* Do full blob upload (using `Put Blob` operation) and block level upload (using `Put Block`, `Put Block List` and `Append Block` operations).
36+
* Do full blob upload (using `Put Blob` operation) and block level upload (using `Put Block`, `Put Block List`, and `Append Block` operations).
3737

3838
This module uses block level upload, when your blob consists of blocks. Here are some of the common scenarios:
3939

@@ -62,7 +62,7 @@ An Azure IoT Edge device:
6262

6363
Cloud resources:
6464

65-
A standard-tier [IoT Hub](../iot-hub/iot-hub-create-through-portal.md) in Azure.
65+
A standard-tier [IoT hub](../iot-hub/iot-hub-create-through-portal.md) in Azure.
6666

6767
## deviceToCloudUpload and deviceAutoDelete properties
6868

@@ -75,9 +75,9 @@ The name of this setting is `deviceToCloudUploadProperties`. If you're using the
7575
| Property | Possible Values | Explanation |
7676
| ----- | ----- | ---- |
7777
| uploadOn | true, false | Set to `false` by default. If you want to turn on the feature, set this field to `true`. <br><br> Environment variable: `deviceToCloudUploadProperties__uploadOn={false,true}` |
78-
| uploadOrder | NewestFirst, OldestFirst | Allows you to choose the order in which the data is copied to Azure. Set to `OldestFirst` by default. The order is determined by last modified time of blob. <br><br> Environment variable: `deviceToCloudUploadProperties__uploadOrder={NewestFirst,OldestFirst}` |
79-
| cloudStorageConnectionString | | `"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. Specify `Azure Storage Account Name`, `Azure Storage Account Key`, `End point suffix`. Add appropriate EndpointSuffix of Azure where data is uploaded, it varies for Global Azure, Government Azure, and Microsoft Azure Stack. <br><br> You can choose to specify Azure Storage SAS connection string here. But you have to update this property when it expires. SAS permissions may include create access for containers and create, write, and add access for blobs. <br><br> Environment variable: `deviceToCloudUploadProperties__cloudStorageConnectionString=<connection string>` |
80-
| storageContainersForUpload | `"<source container name1>": {"target": "<target container name>"}`,<br><br> `"<source container name1>": {"target": "%h-%d-%m-%c"}`, <br><br> `"<source container name1>": {"target": "%d-%c"}` | 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. If you don't specify the target container name, it's automatically assigned a container name such as `<IoTHubName>-<IotEdgeDeviceID>-<ModuleName>-<SourceContainerName>`. You can create template strings for target container name, check out the possible values column. <br>* %h -> IoT Hub Name (3-50 characters). <br>* %d -> IoT Edge Device ID (1 to 129 characters). <br>* %m -> Module Name (1 to 64 characters). <br>* %c -> Source Container Name (3 to 63 characters). <br><br>Maximum size of the container name is 63 characters. The name is automatically assigned the target container name if the size of container exceeds 63 characters. In this case, name is trimmed in each section (IoTHubName, IotEdgeDeviceID, ModuleName, SourceContainerName) to 15 characters. <br><br> Environment variable: `deviceToCloudUploadProperties__storageContainersForUpload__<sourceName>__target=<targetName>` |
78+
| uploadOrder | NewestFirst, OldestFirst | Allows you to choose the order in which the data is copied to Azure. Set to `OldestFirst` by default. The last modified time of the blob determines the order.<br><br> Environment variable: `deviceToCloudUploadProperties__uploadOrder={NewestFirst,OldestFirst}` |
79+
| cloudStorageConnectionString | | `"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. Specify `Azure Storage Account Name`, `Azure Storage Account Key`, `End point suffix`. Add appropriate EndpointSuffix of Azure where data is uploaded, it varies for Global Azure, Government Azure, and Microsoft Azure Stack. <br><br> You can choose to specify Azure Storage SAS connection string here. But you have to update this property when it expires. SAS permissions might include create access for containers and create, write, and add access for blobs. <br><br> Environment variable: `deviceToCloudUploadProperties__cloudStorageConnectionString=<connection string>` |
80+
| storageContainersForUpload | `"<source container name1>": {"target": "<target container name>"}`,<br><br> `"<source container name1>": {"target": "%h-%d-%m-%c"}`, <br><br> `"<source container name1>": {"target": "%d-%c"}` | 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. If you don't specify the target container name, a container name such as `<IoTHubName>-<IotEdgeDeviceID>-<ModuleName>-<SourceContainerName>` is automatically assigned. You can create template strings for the target container name, similar to the template strings shown in the **Possible Values** column, using the following variables:<br>* %h -> IoT Hub Name (3-50 characters). <br>* %d -> IoT Edge Device ID (1 to 129 characters). <br>* %m -> Module Name (1 to 64 characters). <br>* %c -> Source Container Name (3 to 63 characters). <br><br>Maximum size of the container name is 63 characters. The name is automatically assigned the target container name if the size of container exceeds 63 characters. In this case, name is trimmed in each section (IoTHubName, IotEdgeDeviceID, ModuleName, SourceContainerName) to 15 characters. <br><br> Environment variable: `deviceToCloudUploadProperties__storageContainersForUpload__<sourceName>__target=<targetName>` |
8181
| deleteAfterUpload | true, false | Set to `false` by default. When set to `true`, the data automatically deletes when the upload to cloud storage is finished. <br><br> **CAUTION**: If you're using append blobs, this setting deletes 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. Don't enable this setting if your application does infrequent append operations or doesn't support continuous append operations<br><br> Environment variable: `deviceToCloudUploadProperties__deleteAfterUpload={false,true}`. |
8282

8383
### deviceAutoDeleteProperties
@@ -88,7 +88,7 @@ The name of this setting is `deviceAutoDeleteProperties`. If you're using the Io
8888
| ----- | ----- | ---- |
8989
| deleteOn | true, false | Set to `false` by default. If you want to turn on the feature, set this field to `true`. <br><br> Environment variable: `deviceAutoDeleteProperties__deleteOn={false,true}` |
9090
| deleteAfterMinutes | `<minutes>` | Specify the time in minutes. The module automatically deletes your blobs from local storage when this value expires. Current maximum minutes allowed are 35791. <br><br> Environment variable: `deviceAutoDeleteProperties__ deleteAfterMinutes=<minutes>` |
91-
| retainWhileUploading | true, false | By default it's set to `true`, and retains the blob while it's uploading to cloud storage if `deleteAfterMinutes` expire. You can set it to `false` and it deletes the data as soon as `deleteAfterMinutes` expires. Note: For this property to work uploadOn should be set to true. <br><br> **CAUTION**: If you use append blobs, this setting deletes append blobs from local storage when the value expires, and any future Append Block operations to those blobs fail. Make sure the expiry value is large enough for the expected frequency of append operations performed by your application.<br><br> Environment variable: `deviceAutoDeleteProperties__retainWhileUploading={false,true}`|
91+
| retainWhileUploading | true, false | Set to `true` by default. Retains the blob while it's uploading to cloud storage if `deleteAfterMinutes` expire. You can set it to `false` and it deletes the data as soon as `deleteAfterMinutes` expires. Note: For this property to work uploadOn should be set to true. <br><br> **CAUTION**: If you use append blobs, this setting deletes append blobs from local storage when the value expires, and any future Append Block operations to those blobs fail. Make sure the expiry value is large enough for the expected frequency of append operations performed by your application.<br><br> Environment variable: `deviceAutoDeleteProperties__retainWhileUploading={false,true}`|
9292

9393
## Using SMB share as your local storage
9494

@@ -116,7 +116,7 @@ This command uses the credentials to authenticate with the remote SMB server. Th
116116

117117
Make sure the user in IoT device can read/write to the remote SMB share.
118118

119-
For your deployment the value of `<storage mount>` can be **G:/ContainerData:C:/BlobRoot**.
119+
For your deployment, the value of `<storage mount>` can be **G:/ContainerData:C:/BlobRoot**.
120120

121121
## Granting directory access to container user on Linux
122122

@@ -155,7 +155,7 @@ sudo chmod -R 700 <blob-dir>
155155

156156
## Configure log files
157157

158-
The default output log level is 'Info'. To change the output log level, set the `LogLevel` environment variable for this module in the deployment manifest. `LogLevel` accepts the following values:
158+
The default output log level is 'Info'. To change the output log level, set the `LogLevel` environment variable for this module in the deployment manifest. `LogLevel` accepts the following values:
159159

160160
* Critical
161161
* Error
@@ -168,7 +168,7 @@ For information on configuring log files for your module, see these [production
168168

169169
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.
170170

171-
Specify your IoT Edge device as the blob endpoint for any storage requests that you make to it. You can [Create a connection string for an explicit storage endpoint](../storage/common/storage-configure-connection-string.md#create-a-connection-string-for-an-explicit-storage-endpoint) using the IoT Edge device information and the account name that you configured.
171+
Specify your IoT Edge device as the blob endpoint for any storage requests that you make to it. You can [create a connection string for an explicit storage endpoint](../storage/common/storage-configure-connection-string.md#create-a-connection-string-for-an-explicit-storage-endpoint) using the IoT Edge device information and the account name that you configured.
172172

173173
* 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>`.
174174
* For modules or applications running on a different device, you have to choose the right endpoint for your network. 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. The blob endpoint for this scenario is one of:
@@ -183,7 +183,7 @@ Specify your IoT Edge device as the blob endpoint for any storage requests that
183183

184184
The Azure Blob Storage documentation includes quickstart sample code in several languages. 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.
185185

186-
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:
186+
IoT Edge supports the languages used by the following quickstart samples, so you could deploy them as IoT Edge modules alongside the blob storage module:
187187

188188
* [.NET](../storage/blobs/storage-quickstart-blobs-dotnet.md)
189189
* The Azure Blob Storage on IoT Edge module v1.4.0 and earlier are compatible with WindowsAzure.Storage 9.3.3 SDK and v1.4.1 also supports Azure.Storage.Blobs 12.8.0 SDK.
@@ -212,17 +212,17 @@ You can use [Azure Storage Explorer](https://azure.microsoft.com/features/storag
212212

213213
1. Create container inside your local storage account
214214

215-
1. Start uploading files as Block blobs or Append Blobs.
215+
1. Start uploading files as block blobs or append blobs.
216216
> [!NOTE]
217-
> This module does not support Page blobs.
217+
> This module doesn't support page blobs.
218218
219219
1. You can choose to connect your Azure storage accounts in Storage Explorer, too. This configuration gives you a single view for both your local storage account and Azure storage account
220220

221221
## Supported storage operations
222222

223223
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.
224224

225-
Because not all Azure Blob Storage operations are supported by Azure Blob Storage on IoT Edge, this section lists the status of each.
225+
Because Azure Blob Storage on IoT Edge doesn't support all Azure Blob Storage operations, this section lists the status of each.
226226

227227
### Account
228228

@@ -288,19 +288,12 @@ Unsupported:
288288

289289
* Append block from URL
290290

291-
## Event Grid on IoT Edge Integration
292-
293-
> [!CAUTION]
294-
> The integration with Event Grid on IoT Edge is in preview
295-
296-
This Azure Blob Storage on IoT Edge module now provides integration with Event Grid on IoT Edge. For detailed information on this integration, see the [tutorial to deploy the modules, publish events and verify event delivery](../event-grid/edge/react-blob-storage-events-locally.md).
297-
298291
## Release Notes
299292

300-
Here are the [release notes in docker hub](https://hub.docker.com/r/microsoft/azure-blob-storage) for this module. You might be able to find more information related to bug fixes and remediation in the release notes of a specific version.
293+
Here are the [release notes in Docker Hub](https://hub.docker.com/r/microsoft/azure-blob-storage) for this module. You might be able to find more information related to bug fixes and remediation in the release notes of a specific version.
301294

302295
## Next steps
303296

304-
Learn how to [Deploy Azure Blob Storage on IoT Edge](how-to-deploy-blob.md)
297+
Learn how to [deploy Azure Blob Storage on IoT Edge](how-to-deploy-blob.md)
305298

306299
Stay up-to-date with recent updates and announcement on the [Azure Blob Storage on IoT Edge release notes](https://hub.docker.com/r/microsoft/azure-blob-storage) page.

0 commit comments

Comments
 (0)