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

咨询跨Google Drive账户定期同步指定文件夹的可行方案

跨Google Drive账户定期同步指定文件夹的可行方案

针对你需要从多个供应商Drive账户同步指定文件夹(含新增/删除图片)到自己账户做库存管理的需求,以下是几种实用方案:

1. Google官方方案

共享文件夹+本地同步工具

让供应商把目标文件夹共享给你的Drive账户(至少授予查看权限,若要获取文件完整元数据建议用评论者权限),然后用Google Drive桌面客户端把这个共享文件夹映射到本地。之后用系统自带的定时任务工具:

  • Windows:用「任务计划程序」创建定时任务,调用robocopy命令同步本地映射文件夹到你自己Drive的本地同步目录,设置/MIR参数实现镜像同步(自动同步新增、修改、删除的文件)。
  • Mac:用「自动操作」创建定时工作流,用rsync命令做镜像同步。

这种方式无需额外工具,依赖官方客户端和系统命令,稳定性高。

Google Apps Script 自定义同步脚本

自己写脚本实现定时双向同步,完全可控,适合有基础的用户:
核心逻辑是对比源文件夹(供应商共享)和目标文件夹的文件列表,同步新增文件、删除源中已不存在的文件。示例代码:

function syncSupplierInventory() {
  // 替换为实际的文件夹ID
  const sourceFolder = DriveApp.getFolderById("供应商共享文件夹ID");
  const targetFolder = DriveApp.getFolderById("你的库存文件夹ID");

  // 缓存源文件夹的文件(文件名→ID)
  const sourceFileMap = new Map();
  sourceFolder.getFiles().forEach(file => {
    sourceFileMap.set(file.getName(), file.getId());
  });

  // 删除目标中源文件夹已移除的文件
  targetFolder.getFiles().forEach(file => {
    if (!sourceFileMap.has(file.getName())) {
      file.setTrashed(true);
    }
  });

  // 同步源文件夹新增的文件到目标
  sourceFileMap.forEach((fileId, fileName) => {
    const existingTargetFiles = targetFolder.getFilesByName(fileName);
    if (!existingTargetFiles.hasNext()) {
      const sourceFile = DriveApp.getFileById(fileId);
      sourceFile.makeCopy(fileName, targetFolder);
    }
  });
}

设置定时执行:在脚本编辑器的「编辑」→「当前项目的触发器」中,添加时间驱动触发器,比如选择「周计时器」或「日计时器」,设置间隔为你需要的数日周期。

注意:脚本需要授权Drive访问权限,同步大量文件时要留意Google Apps Script的每日配额(对于数日一次的同步,完全足够)。

2. 第三方桌面同步工具

很多云同步工具支持Google Drive跨账户的镜像同步,这类工具可以图形化设置同步规则、定时周期,并且自动同步删除操作。你可以找支持Google Drive的同步工具,设置源为供应商共享的文件夹,目标为你的Drive文件夹,开启「镜像同步」模式即可。

关键注意事项

  • 确保供应商的共享权限正确:至少能让你读取文件列表和内容,避免同步失败。
  • 目标文件夹建议只用于同步,不要手动添加内容,防止被同步脚本误删。
  • 测试同步逻辑:先小批量测试新增、删除操作,确保符合预期后再正式使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 21:45:21