物聯網平台支援裝置通過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)
物聯網平台返迴文件已存在的錯誤碼,並拒絕再次上傳該檔案。