物聯網平臺支持設備通過MQTT協議,將文件上傳至用戶的OSS空間或者物聯網平臺文件存儲空間,以減少硬件資源的開銷,并降低開發成本。本文介紹通過配置C Link SDK,幫助設備實現文件上傳功能。
前提條件
定制SDK時,在SDK定制頁面的高級能力區域,選中文件上傳。
背景信息
物聯網平臺文件管理功能的更多信息,請參見文件管理。
設備將文件上傳至物聯網平臺后,可調用云端API管理文件。更多信息,請參見:
功能原理
設備的應用程序通過MQTT協議上傳文件至物聯網平臺:
該功能API的詳細信息,請參見aiot_mqtt_upload_api.h。
文件上傳功能基于MQTT連接,更多信息,請參見MQTT接入。
如下功能時序圖,以設備的應用程序./demos/mqtt_upload_basic_demo.c為例,介紹應用程序實現該功能的流程。
使用說明
僅中國的華東2(上海)、華北2(北京)和華南1(深圳)地域下,支持設備通過MQTT協議上傳文件。
上傳文件的名稱限制如下:
支持數字、英文字母、下劃線(_)和英文句點(.)。
首字符僅支持數字和英文字母。
長度不超過100字節。
文件上傳功能支持多個文件上傳。
一個實例下,可存儲的文件總大小不能超過1 GB。
一個設備下,可存儲的文件數量不能超過1,000個。
單個文件不超過16 MB。
設備向物聯網平臺發送上傳文件請求時,物聯網平臺根據文件名,執行以下策略。
若物聯網平臺不存在同名文件,直接創建文件的上傳任務。
若物聯網平臺存在同名文件,則根據所設置的同名文件處理策略,執行以下對應操作。示例代碼及說明,請參見步驟四:請求上傳文件。
處理策略(conflictStrategy)
說明
覆蓋模式(overwrite)
默認模式,刪除已存在的同名文件,僅保留最新上傳的文件。
文件追加模式(append)
發起上傳文件請求后,物聯網平臺返回已存在的同名文件信息,設備端可根據業務需要,選擇以下操作:
如果已存在的同名文件為未完成上傳的文件,則設備繼續執行上傳任務。
說明物聯網平臺僅在24小時內保留未完成上傳的文件。
如果已存在的同名文件為已完成上傳的文件,則設備選擇覆蓋模式或重命名文件后,重新上傳文件。
拒絕模式(reject)
物聯網平臺返回文件已存在的錯誤碼,并拒絕再次上傳該文件。
使用示例
文件上傳的參考示例請參見:
文件上傳功能相關錯誤碼,請參見aiot_mqtt_upload_api.h中的狀態碼描述。