使用 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()
};
我正在使用 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()
};