使用 Azure IoT SDK 为 Python 上传图像

Uploading an image with Azure IoT SDK for Python

大家好,感谢阅读本文。我想将我的 raspberry 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。提前致谢 !

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)