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

如何在浏览器中通过Google Drive API上传JSON字符串数据

浏览器环境下使用Google Drive API上传JSON字符串的解决方案

在浏览器环境中,直接将JSON字符串作为media.body传入会导致文件识别异常,原因是gapi在浏览器端要求媒体内容为Blob或File对象,而非原始字符串。以下是可行的实现方案:

完整代码示例

// 定义要上传的JSON数据
const targetJson = {
  appConfig: "demo",
  version: "1.0.0",
  settings: { darkMode: true }
};
const jsonString = JSON.stringify(targetJson);

// 文件元数据,指定带扩展名的文件名
const fileMetadata = {
  name: "config.json"
};

// 将JSON字符串转换为Blob对象,适配浏览器媒体格式要求
const media = {
  mimeType: "application/json",
  body: new Blob([jsonString], { type: "application/json" })
};

// 执行上传的异步函数
async function uploadJsonFile() {
  try {
    const result = await gapi.client.files.create({
      resource: fileMetadata,
      media: media,
      fields: "id, name, mimeType"
    });
    console.log(`文件上传成功:名称=${result.data.name},ID=${result.data.id},类型=${result.data.mimeType}`);
  } catch (err) {
    console.error("上传失败:", err);
  }
}

关键说明

  1. Blob转换:通过new Blob([jsonString], { type: "application/json" })将JSON字符串转为浏览器可识别的媒体对象,确保Drive API能正确解析文件内容和类型。
  2. 元数据设置:fileMetadata.name必须明确包含.json扩展名,避免生成无标题文件。
  3. 权限验证:确保已完成gapi的授权流程,且授权范围包含https://www.googleapis.com/auth/drive.file或足够的Drive操作权限。

内容的提问来源于stack exchange,提问作者Kélio Minervino

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:15:57