物联网设备如何将文件上传到云端?

How can an IoT device upload a file to the cloud?

Google云平台上的物联网设备是否可以通过某种方式将文件上传到云端?在这种情况下,它不完全是遥测数据发布。直接访问存储桶可能很有用。或者访问我的基于 AppEngine 的应用程序,但如果我将它上传到我的应用程序(下一步会将文件放入存储桶),我怎么可能对设备进行身份验证以确保发送它的设备对我来说实际上是它声称的设备?

文件有多大?设备是什么?

使用 Cloud IoT Core 的一大优势是它处理安全部分,因此您不必考虑该部分。您可以发送任何 Base64 编码的数据,因此发送文件应该没问题。问题是大小配额。每条消息只有 256KB,因此如果文件很大,您可能需要在发送前将文件分解成多个部分并在另一端重新组合。

您可以采用的另一种方法是使用 IAM 和服务帐户作为安全措施,并让设备直接与云存储等其他服务之一通信。正如您所说,这确实使设备上的身份验证更加困难,因为它使用的是不记名令牌 (service_account.json)。但是,服务帐户的权限可能会受到严格限制(例如,只写特定的云存储存储桶)以限制它在受到威胁时可以执行的操作。

我设法通过配置将 Signed URL 传递给设备来解决问题。 https://cloud.google.com/storage/docs/access-control/signed-urls