我在文档中读到 media.upload() 支持上传视频类型,但文件类型、限制或任何有意义的信息都没有很好地文档化。

所以我尝试在我的App中添加视频上传:

  const uploadPromises = matches.map(async (match) => {
    const dataUrl = match[1];
    const mediaCategory = match[2];
    const extension = match[3]?.toLowerCase();

    let mediaType: 'gif' | 'image' | 'video' = 'image';
    if (mediaCategory === 'video') {
      mediaType = 'video';
    } else if (extension === 'gif') {
      mediaType = 'gif';
    }
    console.log('上传媒体:', { mediaType });
    const response = await media.upload({ url: String(dataUrl), type: mediaType });
    return { dataUrl: String(dataUrl), mediaUrl: response.mediaUrl };
  });

  const uploadResults = await Promise.all(uploadPromises);
  for (const res of uploadResults) {
    finalContent = finalContent.replace(res.dataUrl, res.mediaUrl);
  }

然而我尝试上传一个sample webm文件,它返回:

>上传媒体失败:Error:2 UNKNOWN:流错误:流ID 10557;PROTOCOL_ERROR;来自同伴的收到的

我也尝试了一个mp4文件:

>上传媒体失败:Error:2 UNKNOWN:grpc调用失败,状态码为2;无法轮询媒体URL https://i. redd. it/xxxxx.mp4轮询媒体失败后5个时间戳

我尝试了不同的文件大小,即使是900KB也失败了。不知道为什么会这样发生。是否有任何人能确认我是否做错了什么?