You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法将内存缓冲区中的Excel文件上传至GCS存储桶

问题描述

我通过用户上传的文件构建了一个缓冲区,代码如下:

const chunks = [];
for await (const chunk of data) {
  chunks.push(chunk);
}
const fullData = Buffer.concat(chunks);
const gcsUrl = await uploadInputFile({
  buffer: fullData,
  filename: `myfile.xlsx`,
});

我希望将这个内存中的缓冲区上传至GCS存储桶,上传函数代码如下:

const uploadInputFile = async ({ buffer, filename }: { buffer: Buffer; filename: string }) => {
  await storage
    .bucket("bucket-name")
    .file(`input_files/${filename}`)
    .save(buffer, {resumable: false});

  return file.cloudStorageURI.href;
};

我尝试了为save函数添加不同配置来上传Excel文件(理论上无需指定内容类型即可上传任意文件):

  • .save(buffer, {resumable: false})
  • .save(buffer, {resumable: false, contentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"})
  • 不添加任何配置 .save(buffer)

但客户端库尝试POST文件时出现如下错误:

<p><b>400.</b> <ins>That’s an error.</ins>
  <p>Your client has issued a malformed or illegal request.  <ins>That’s all we know.</ins>

而使用相同逻辑上传PDF文件并指定内容类型时可以成功:

await storage
    .bucket("docflow-files")
    .file(`input_files/${filename}`)
    .save(buffer, {resumable: false, contentType: "application/pdf"});

内容的提问来源于stack exchange,提问作者Ali Sajjad Rizavi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 06:42:44