Suggest a cloud database solution for downloading large binary file using REST API

txh3157 21 Reputation points
2020-10-02T04:27:26.977+00:00

There are seem to have many cloud data storage solutions in Azure. Our requirement is to let our 10,000+ smart devices to download firmware that is around 50kB. The device has older Linux distribution in ARM and might not be able to support ready-made client-side library. But we definitely are able to access remote RESTful services. Since our device can interrupt the download from time to time, we need a cloud data storage that supports pausing/resuming feature. Wondering if Cosmos DB / Document DB / Blob storage can serve the purpose? Assuming our client can implement a paging feature that remembers the position of the downloading file. We will need the cloud can take the position as an argument and resuming the download.

Thank you!

Azure Cloud Services
Azure Cloud Services
An Azure platform as a service offer that is used to deploy web and cloud applications.
646 questions
Azure Blob Storage
Azure Blob Storage
An Azure service that stores unstructured data in the cloud as blobs.
2,449 questions
Azure Content Delivery Network
Azure Cosmos DB
Azure Cosmos DB
An Azure NoSQL database service for app development.
1,455 questions
0 comments No comments
{count} votes

Accepted answer
  1. deherman-MSFT 33,701 Reputation points Microsoft Employee
    2020-10-02T19:30:41.887+00:00

    @txh3157
    I believe Blob storage might be suitable for your use case. According to the reference of Azure REST API Get Blob for Storage Service, there is a parameter x-ms-range of request headers for downloading part of a Blob.

    x-ms-range Optional. Return only the bytes of the blob in the specified range. If both Range and x-ms-range are specified, the service uses the value of x-ms-range. If neither are specified, the entire blob contents are returned. See Specifying the Range Header for Blob Service Operations for more information.

    So you can resume the downloading process by pass the x-ms-range value with bytes=<the byte size of your downloaded>- to continue to download the full tail of a blob in a working thread.

    Hope this helps! Please let us know if you have further questions or issues.

    --------------

    Please don’t forget to "Accept the answer" and “up-vote” wherever the information provided helps you, this can be beneficial to other community members.

    0 comments No comments

0 additional answers

Sort by: Most helpful