使用Azure IoT SDK for Python上传图像

时间:2017-01-02 21:01:19

标签: python python-2.7 azure azure-storage-blobs azure-iot-hub

大家好,感谢您阅读本文。我想从我的覆盆子pi上传一张图片到我的Blob存储。我的Blob存储链接到我的Azure IoT中心,其中包含图片容器。为了达到这个目的,我正在使用Azure IoT SDK for Python现在,我正在腌制我应该如何格式化我的图像。我做了一些研究,显然当你将图片上传到Blob时,它应该是一个字节数组?我尝试了各种格式,但没有成功。我将图像存储在本地,并希望将其作为内容传递。

我在Python中的代码:

def upload_to_blob(filename,content):
#Upload foto naar blob
try:
    iotHubClient.upload_blob_async(filename,content,len(content),blob_upload_confirmation_callback,1001)        
except Exception as e:
    print e
    update_log('Unexpected error from IoT hub')

我在C ++中发现了这个iotHubClient的模拟版本

IOTHUB_CLIENT_RESULT IoTHubClient_UploadToBlobAsync(IOTHUB_CLIENT_HANDLE iotHubClientHandle, const char* destinationFileName, const unsigned char* source, size_t size, IOTHUB_CLIENT_FILE_UPLOAD_CALLBACK iotHubClientFileUploadCallback, void* context)

在示例中,他们只展示如何将纯文本作为文本文件上传,我似乎无法在文档中找到它。如果你可以帮助我打开图片,我会发送到我的blob,在我的笔记本电脑上。提前致谢 !

1 个答案:

答案 0 :(得分:2)

Python SDK处理为您上传,因此您可以执行以下操作:

    filename = "myimage.png"
    f = open("C:\Temp\myimage.png", "rb")
    content = f.read()

    print("IoTHubClient is uploading blob to storage")
    iotHubClient.upload_blob_async(filename, content, len(content), blob_upload_confirmation_callback, 1001)