Я отправляю FormData()
в облачную функцию с чем-то вроде этого во внешнем интерфейсе JavaScript.
//Frontend Angular
const formData = mew FormData();
formData.append('file1', zipFile1);
formData.append('file2', zipFile2);
formData.append('name', 'MyFiles');
this.http.post(urlAPI, formData) //angularJS
//Cloud Function
function main(param) {
console.log(param);
}
Журнал консоли на param
показывает, что content-type
- это multipart/form-data
взаголовокСуществует также свойство, помеченное как __ow_body
. Это значение представляет собой очень длинную строку символов и цифр. Я не уверен, что это такое, но я предполагаю, что это файлы, которые я отправляю в потоковом / сериализованном формате.
{
__ow_body: 'hf381fh891hv831h93n19384v938v892vn98vn2890vn29n9vn9892vn948vn2893vn2985hv98...'
}
Я хотел подтвердить, являются ли это данные потока, и если да, то как я могу это сделать? разобрать это?
Мне нужно отправить этот файл, который представляет собой zip-файл с изображениями, в API, который я использую. В этом API документов примеры показывают отправку файла в локальной файловой системе, такой как
someApiFunction('./myImgs.zip').then(...);
Проблема заключается в том, что я отправляю свой zip-файл по сетевому протоколу http, и формат, на мой взгляд, сильно отличается отПример чтения файла в локальной файловой системе / машине. Как я могу десериализовать / проанализировать мой файл, чтобы он мог быть распознан как zip-файл, содержащий изображения внутри?
Я пытался использовать fs.createReadStream
, но, похоже, он его не анализирует. Он просто сделает объект более структурированным, но внутри этого объекта я не вижу свои formData
и его ключи, такие как file1
file2
и name
.
Нужно ли мне сначала написать этот файл куда-нибудь?