目前我有一個設置,其中API網關接受來自POST請求的.wav
文件,並將編碼數據從音頻文件發送到作爲使用它們的處理程序的lambda函數二進制支持系統。使用.wav文件的API網關二進制支持
我需要將音頻文件的是base64編碼轉換從網關回一個.wav
格式沒有寫入新文件和讀取,因爲AWS lambda表達式是隻讀文件系統。
我試着做new Buffer(data, 'base64').toString('binary')
希望的工作,但它並沒有並沒有一大堆的信息,有關如何做到這一點。
目前我有一個設置,其中API網關接受來自POST請求的.wav
文件,並將編碼數據從音頻文件發送到作爲使用它們的處理程序的lambda函數二進制支持系統。使用.wav文件的API網關二進制支持
我需要將音頻文件的是base64編碼轉換從網關回一個.wav
格式沒有寫入新文件和讀取,因爲AWS lambda表達式是隻讀文件系統。
我試着做new Buffer(data, 'base64').toString('binary')
希望的工作,但它並沒有並沒有一大堆的信息,有關如何做到這一點。
圖出來的問題爲任何人好奇。
當API網關使用其二進制支持系統對請求主體進行編碼時,它們還會將主體和尾部數據(如果存在)編碼爲WebKitBoundary
。
它只是切出的前部和尾部屬於該數據,以便所有編碼剩下的只是嚴格.wav
數據然後重新創建它作爲使用Buffer
的...
let audio = new Buffer(body, 'base64').toString('binary')
// Sequence of replacements and slices to remove WebKitBoundary header and tail
const audioBuffer = new Buffer(audio, 'binary')
的audioBuffer
結果是完全等同於使用fs
模塊簡單讀取.wav
文件。
只要你的文件小於512MB,你可以在一個lambda文件寫入/tmp
。
主要有兩種limitations你需要看使用API網關和Lambda爲您的使用情況下進入。
因此多數時候仍與10MB的限制受到制約音頻文件。
對於這種處理,一個替代的選擇是使用下面的流程。