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

Google App Script下载云端硬盘文件报错:ReferenceError: require未定义

问题解决:Google Apps Script中运行Node.js Drive脚本出现require is not defined错误

错误原因

你用的是Node.js环境的Drive API脚本,但Google Apps Script(GAS)是基于浏览器JavaScript的运行环境,不支持Node.js特有的require模块加载语法,直接运行必然报错。两者的运行环境、API调用逻辑完全不同,不能直接照搬Node.js代码。

正确的Google Apps Script实现方案

步骤1:启用Drive API

在GAS编辑器中操作:

  • 点击左侧菜单栏「服务」→「添加服务」,找到「Drive API」(选v3版本)并添加
  • 也可以直接使用GAS内置的DriveApp服务,无需额外启用API(适合基础操作)

步骤2:编写下载文件的GAS代码

以下是两种实用实现方式:

方式1:生成文件直接下载链接(手动下载场景)

function getDriveFileDownloadLink(fileId) {
  // 获取文件元数据
  const file = Drive.Files.get(fileId);
  // 将文件的预览链接转换为直接下载链接
  const downloadUrl = file.webContentLink.replace('view?usp=drivesdk', 'uc?export=download');
  console.log('文件下载链接:', downloadUrl);
  return downloadUrl;
}

方式2:通过Web应用触发自动下载(前端触发场景)

如果需要通过网页一键触发下载,可将脚本部署为Web应用:

function doGet(e) {
  const fileId = e.parameter.fileId;
  if (!fileId) return ContentService.createTextOutput('请传入fileId参数');
  
  try {
    const file = DriveApp.getFileById(fileId);
    const blob = file.getBlob();
    // 返回文件流,触发浏览器自动下载
    return ContentService.createTextOutput(blob.getDataAsString())
      .setMimeType(blob.getContentType())
      .setHeaders({
        'Content-Disposition': `attachment; filename="${file.getName()}"`
      });
  } catch (err) {
    return ContentService.createTextOutput('下载失败:' + err.message);
  }
}

部署Web应用步骤:

  • 点击脚本编辑器顶部「部署」→「新部署」
  • 类型选「Web应用」,权限按需设置(比如「任何人,甚至匿名」),完成部署
  • 访问生成的Web链接并拼接?fileId=你的目标文件ID,即可触发下载

权限说明

运行脚本时会弹出授权窗口,需授予脚本访问Google Drive的权限,确保你是目标文件的拥有者或具备读取权限。

内容的提问来源于stack exchange,提问作者Digital Samizdat

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 17:16:06