我在将Blob附加到FormData时遇到了奇怪的问题。根据文档(https://developer.mozilla.org/en-US/docs/Web/API/FormData/append),append函数可以是String或Blob。我的代码如下:
const blobFromSync = (...args) =>
import('node-fetch').then(({ blobFromSync }) => blobFromSync(...args));
let file_location = '/path/to/video/file.mp4';
const file = await blobFromSync(file_location);
const chunkSize = 40000;
for (let start = 0; start < file.size; start += chunkSize) {
const chunk = file.slice(start, start + chunkSize + 1)
const form = new FormData();
form.append('file', chunk, 'an-id');
}
控制台记录块显示它是Blob,但它会抛出此错误:
TypeError: source.on is not a function
at DelayedStream.create (/Users/xxxxxxxxx/Development/terminal-backend/node_modules/delayed-stream/lib/delayed_stream.js:33:10)
at CombinedStream.append (/Users/xxxxxxx/Development/terminal-backend/node_modules/combined-stream/lib/combined_stream.js:45:37)
at FormData.append (/Users/xxxxxxxxx/Development/terminal-backend/node_modules/form-data/lib/form_data.js:75:3)
at /Users/xxxxxxxxxn/Development/terminal-backend/src/server.js:90:18
这里我忽略了什么?
form
的地方?看起来好像有些东西期望一个流,但没有得到。 - MattBuffer.from(<your blob>)
应该可以工作。 - Rahul Sharma