【发布时间】:2014-08-05 04:45:38
【问题描述】:
创建新文件有四种方式:
- DocsList - 在主列表中显示为 DocsList。内置于 Apps 脚本中。
- DriveApp - 在主列表中显示为 Drive。内置于 Apps 脚本中。
- Drive API - 在主列表中也显示为 Drive。 必须添加到 Apps 脚本中。
- DocumentApp - 在主列表中显示为 Document。内置,但仅创建一个文档文件。
它们都被称为服务。 Drive API 被称为高级服务。那么,你应该使用哪一个?我不知道,这取决于。这个问题是关于 Drive API 高级服务的。
我不想使用 2 或 3 项服务来完成工作。我只想使用其中之一。但是要决定使用哪一个,我需要知道所有这些的功能和选项。如果最简单和最容易使用的那个可以满足我的所有需求,那么我会使用它。
如果我可以使用 Drive API 创建一个新文件,但是我需要使用 DriveApp 服务将我使用 Drive API 创建的文件移动到我想要的文件夹中,那么在这种特定情况下使用 Drive API 是毫无意义。
我可以使用 Google Apps 脚本.gs 代码在我的 Google 云端硬盘中创建一个新文件,但该文件会写入主“我的云端硬盘”。我想将文件直接写入子文件夹。我当前的代码是:
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);
即使代码有效,我也不知道为什么语法是这样的,而且我找不到告诉我原因的文档。我可以找到属性列表:
title: 和mimeType: 是作为Request Body 一部分的可选属性。从示例中可以看出,可选属性显然是放在一个键值对的对象中。那么,语法是这样的:
Drive.Files.insert(optional properties, content);
还有必填的查询参数:
uploadType --> media, multipart, resumable
但我在示例代码的任何地方都没有看到任何必需的uploadType 参数。所以,我不理解 Google 的文档。
是否可以在 Apps Script .gs 代码文件中使用 Google 高级驱动器服务直接写入特定驱动器?我该怎么做?
【问题讨论】:
标签: google-apps-script google-drive-api