使用 Google Advanced Drive 服务通过 Apps 脚本在文件夹中创建新文件

2024-05-22

创建新文件有四种方法:

  • DocsList - 显示为DocsList在主列表中。内置于 Apps 脚本中。
  • DriveApp - 显示为Drive在主列表中。内置于 Apps 脚本中。
  • 驱动器 API - 也显示为Drive在主列表中。必须添加到 Apps 脚本。
  • DocumentApp - 显示为Document在主列表中。内置,但仅创建文档文件。

他们都被称为services。 Drive API 称为先进的服务。那么,您应该使用哪一个呢?我不知道,这要看情况。这个问题是关于驱动API先进的服务。

我不想使用 2 或 3 个服务来完成工作。我想只使用其中之一。但要决定使用哪一个,我需要了解所有这些的功能和选项。如果最简单、最容易使用的一个可以满足我想要的一切,那么我就会使用它。

如果我可以使用 Drive API 创建一个新文件,但随后我需要使用 DriveApp 服务将我使用 Drive API 创建的文件移动到我想要的文件夹,那么在这种特定情况下使用 Drive API 是没有意义的。

我可以通过 Google Apps 脚本在 Google 云端硬盘中创建新文件.gs代码,但文件被写入主“我的驱动器”。我想将文件直接写入子文件夹。我当前的代码是:

var fileNameSetA = 'someFile.jpg';
var uploadedBlobA = an image uploaded with a file picker;

var fileTestDrive = {
  title: fileNameSetA,
  mimeType: 'image/jpeg'
};

fileTestDrive = Drive.Files.insert(fileTestDrive, uploadedBlobA);

尽管代码有效,但我不知道为什么语法是这样的,而且我找不到告诉我原因的文档。我可以找到属性列表:

The title: and mimeType:是可选属性的一部分Request Body。从示例中,可选属性显然被放入键:值配对对象中。那么,语法是:

Drive.Files.insert(optional properties, content);

还有以下必需的查询参数:

uploadType --> media, multipart, resumable

但我没有看到任何必需的uploadType示例代码中任意位置指定的参数。所以,我不明白谷歌的文档。

谷歌文档插入 https://developers.google.com/drive/v2/reference/files/insert

是否可以使用 Apps 脚本 .gs 代码文件中的 Google Advanced Drive 服务直接写入特定驱动器?我该怎么做?


创建新文件的最简单方法是使用DriveApp附带纯 Google Apps 脚本:

var dir = DriveApp.getFolderById("{dir_id}");
var file = dir.createFile(name, content);

如果您不知道确切的目录 ID,您可以通过名称获取文件夹:

var dir = DriveApp.getFoldersByName(name).next();

The next()是因为getFoldersByName()返回名称与给定值匹配的所有目录的集合。

另请检查DriveApp docs: https://developers.google.com/apps-script/reference/drive/drive-app https://developers.google.com/apps-script/reference/drive/drive-app

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Google Advanced Drive 服务通过 Apps 脚本在文件夹中创建新文件 的相关文章

随机推荐