gpt4 book ai didi

google-apps-script - 使用 Google Advanced Drive 服务在带有 Apps Script 的文件夹中创建新文件

转载 作者:行者123 更新时间:2023-12-03 23:09:13 25 4
gpt4 key购买 nike

有四种方法可以创建新文件:

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

  • 他们都叫 服务 . Drive API 称为 高级服务 .那么,您应该使用哪一种?我不知道,这取决于。这个问题是关于 驱动 API 高级服务。

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

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

    我可以通过 Google Apps 脚本在我的 Google Drive 中创建一个新文件 .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);

    即使代码有效,我也不知道为什么语法是这样的,而且我找不到告诉我原因的文档。我可以找到属性列表:
    title:mimeType:是可选属性,作为 Request Body 的一部分.从这个例子来看,Optional Properties 显然是放在一个 key:value 配对的对象中。所以,是语法:
    Drive.Files.insert(optional properties, content);

    还有必需的查询参数:
    uploadType --> media , multipart , resumable
    但我没有看到任何必需的 uploadType在示例代码中的任何位置指定的参数。所以,我不明白谷歌的文档。

    Google Documentation Insert

    是否可以在 Apps Script .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();
    next()是因为 getFoldersByName()返回名称与给定值匹配的所有目录的集合。

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

    关于google-apps-script - 使用 Google Advanced Drive 服务在带有 Apps Script 的文件夹中创建新文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24225398/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com