This sample demonstrates uploading a text file to Azure Blob service from Azure Sphere using libcurl to initiate Put Blob REST API with SAS authorization.
- To run this demo you need have a storage account and create a blob container
- Download Azure Storage Explorer and login with your Azure AD
- In Storage Explorer, navigate to your container icon and right click to Get Shared Access Signature, create a Ad-hoc Service SAS with at least Create and Write permission. Copy Query String
-
Ensure that your Azure Sphere device is connected to your PC, and your PC is connected to the internet.
-
Even if you've performed this set up previously, ensure that you have Azure Sphere SDK version 19.09 or above. In an Azure Sphere Developer Command Prompt, run azsphere show-version to check. Download and install the latest SDK as needed.
-
Open Azure Sphere Developer Command Prompt and issue the following command:
azsphere dev prep-debug
-
Start Visual Studio.
-
Select the file azure-sphere-libcurl-blob.sln and then click Open.
-
In main.c file, replace FileURI string with your stroage account name and SASToken string with your Query String created.
-
In app_manifest.json file, fill your own stroage account name in AllowedConnections capability.
-
Press F5 to build and debug the application
-
In Device Output window, you will observe below logs:
Example to upload a file to Azure Blob Service by using libcurl and REST API * Trying 52.239.128.36... * TCP_NODELAY set * Connected to <your-storage-account>.blob.core.windows.net (52.239.128.36) port 443 (#0) * successfully set certificate verify locations: * CAfile: none CApath: /etc/certs/ * ALPN, offering http/1.1 * ALPN, server did not agree to a protocol * SSL connection using TLSv1.2 / ECDHE-RSA-AES256-GCM-SHA384 > PUT /img/hello4.txt?se=2019-10-31T14%3A32%3A00Z&sp=w&sv=2018-03-28&sr=c&sig=eOHVGesikAYMDeJfysweiSdySbTILa12EowRJuEJbkuk%3D HTTP/1.1 Host: <your-storage-account>.blob.core.windows.net Accept: */* x-ms-blob-type:BlockBlob Content-Length: 11 Expect: 100-continue < HTTP/1.1 100 Continue * We are completely uploaded and fine < HTTP/1.1 201 Created < Content-Length: 0 < Content-MD5: sQqNsWTgdUEFt6mb5y4/5Q== < Last-Modified: Wed, 23 Oct 2019 14:47:53 GMT < ETag: "0x8D757C7FC0FA29E" < Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0 < x-ms-request-id: a2a830e8-801e-0014-51b0-894e2f000000 < x-ms-version: 2018-03-28 < x-ms-request-server-encrypted: true < Date: Wed, 23 Oct 2019 14:47:52 GMT < * Connection #0 to host <your-storage-account>.blob.core.windows.net left intact
-
Go to Azure Storage Explorer and double click your container, a hello.txt will be listed. Double click the file to open and inspect the content: Hello World