我正在編寫代碼 (Python 3),用于在小型 IOT 設(shè)備上收集數(shù)據(jù)并將其上傳到 AWS 上的數(shù)據(jù)庫。目前,數(shù)據(jù)是通過將其解析為 json 字符串并通過 post 請求發(fā)送來發(fā)送的。有時可能會有很多數(shù)據(jù),我想知道是否可以使用 post 請求以壓縮形式發(fā)送它。我不想做的是獲取數(shù)據(jù),將其壓縮到一個文件中,然后將該文件的原始數(shù)據(jù)讀入一個字符串,并將該字符串放入 JSON 中。保存文件并立即從中讀取將是一種浪費。有沒有辦法將數(shù)據(jù)直接壓縮成一串原始數(shù)據(jù),然后發(fā)送壓縮后的字符串而不是壓縮成文件并讀取它?我需要一種無損壓縮格式,希望壓縮/解壓縮不會占用太多資源。.npy 壓縮會特別好。
2 回答

紅糖糍粑
TA貢獻1815條經(jīng)驗 獲得超6個贊
自從您提到 npy 以來,您似乎擁有二進制數(shù)據(jù)。
只需在 POST 正文中發(fā)送二進制數(shù)據(jù)。
如果您需要壓縮信號,那么這是一個不同的問題。大多數(shù)測量都不是非??蔁o損壓縮的。
您可能需要降低浮點數(shù)的精度或在設(shè)備上進行一些信號處理,例如低通濾波噪聲、帶通限制、增量壓縮。
為了獲得良好的結(jié)果,使用了強大的有損量化算法,例如 mp3 正在使用。但這些很難理解和正確。

千巷貓影
TA貢獻1829條經(jīng)驗 獲得超7個贊
如果您的設(shè)備通過 MQTT 連接到我假設(shè)的 AWS IoT 核心,您不會發(fā)布任何內(nèi)容?這通常是一個較輕的設(shè)置,然后 HTTP 和 MQTT 在實際物聯(lián)網(wǎng)開發(fā)中是首選。除非您想在設(shè)備上編寫壓縮算法,否則處理這些事情的最佳方法是通過 AWS IoT Core 發(fā)送您的數(shù)據(jù)并將 Lambda 操作連接到該傳入消息。然后在將信息直接從 Lambda 分派到 DynomoDB 或 S3 之前,對 Lambda 進行編程以執(zhí)行任何文件操作或壓縮。
添加回答
舉報
0/150
提交
取消