首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NodeJS应用编程接口调用上载MP4s时Azure视频索引器停止

使用NodeJS应用编程接口调用上载MP4s时Azure视频索引器停止
EN

Stack Overflow用户
提问于 2021-02-18 05:10:02
回答 1查看 111关注 0票数 0

我使用NodeJS将mp4s的一个目录逐个上传到Azure。由于某些原因,视频索引停滞了大约20%的时间。我不清楚为什么。API调用未显示任何错误。当尝试为视频加载数据时,我只得到“正在处理”的状态,但它永远不会结束。我必须手动删除视频并重新开始。

登录到videoindexer.ai网站,我可以看到该进程被无限期地停止:

这是我上传MP4的NodeJS。如果我在这里做错了什么,我将非常感谢任何建议:

代码语言:javascript
复制
const fs = require('fs');
const path = require('path');
const fetch = require('node-fetch');
const FormData = require('form-data');

const uploadVideo = async (filePath) => {
  const fileName = path.parse(filePath).name;

  const url = `https://api.videoindexer.ai/${LOCATION}/Accounts/${ACCOUNTID}/Videos?accessToken=${TOKEN}&name=${fileName}&description=TEST&privacy=private&partition=some_partition`;

  const fileBase = path.parse(filePath).base; // e.g. "video1.mp4"
  const formData = new FormData();
  formData.append('file', fs.createReadStream(filePath), { filename: fileBase });

  const headers = {
    'x-ms-client-request-id': '',
    'Ocp-Apim-Subscription-Key': APIKEY,
    ...formData.getHeaders()
  };

  const response = await fetch(url, {
    cache: 'no-cache',
    headers,
    method: 'POST',
    body: formData
  });
  const json = await response.json();
  if (json.ErrorType && json.Message) {
    throw new Error(`${json.ErrorType} - ${json.Message}`);
  }
  console.log('Successfully uploaded video');
  console.log(json);
  return json.id;
};
uploadVideo('./video1.mp4').then((videoId) => console.log('result: ' + videoId)) // <- returns the correct videoId even when process stalls
EN

回答 1

Stack Overflow用户

发布于 2021-02-18 16:57:27

请添加标题'Content-Type': 'multipart/form-data'.您可以删除此...formData.getHeaders(),并提供您的帐户Id和/或暂停的videoId,以便我们在内部检查

谢谢,视频索引器团队

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66249998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档