使用 google 应用程序脚本将文件从 google 驱动器上传到外部 api

Upload files from google drive to external api using google apps script

我正在使用 google 表单将文件上传到 google 驱动器。现在我希望能够使用 google 应用程序脚本将这些(上传的)文件 从 google 驱动器上传到外部 api。 (This api 的 GoCD 具体而言。)

我尝试以这种方式上传文件,这可能是错误的,但它不起作用:

function main() {
  var url = "https://<my-server-url>/go/files/Pipeline1/1/Stage1/1/Job1/folder/";
  var form = {
    file : DriveApp.getFileById("<file-id>"),
  };
  uploadFile(url,form);
}

function uploadFile(url,form) {
  
  var options = {
    "method" : "POST",
    "header" : {
    "Confirm" : true
    },
    "muteHttpExceptions" : true,
    'zipFile' : form
  };
  
  var response = UrlFetchApp.fetch(url,options);
  Logger.log("Response body: " + response.getContentText());
}

有没有其他方法可以让 POST api 调用从驱动器上传文件? 此外,对于 google 应用程序脚本的 doPost() 方法资源的任何帮助将不胜感激。

回答这个问题,如果有人需要的话。

所以,我尝试了所有上传文件的方法,但都不行。原来你不能直接从驱动器中获取文件并将其上传到外部 api。你必须有一个中间件(这里是节点应用程序),文件将首先存储在本地,然后上传到 api。我已经使用节点应用程序和 Drive API V3 下载文件,然后对外部 api.

进行了 post 调用

谢谢!

查看我的 post 和@Tanaike 的回答,因为我认为我找到的答案也回答了你的问题,@Shivani-Shinde:.

var formData = {
  'upload': DriveApp.getFileById("###").getBlob()
};