【发布时间】:2021-02-18 18:07:26
【问题描述】:
我创建了一个脚本来使用 post 方法将文件从本地上传到 Google Drive,我尝试使用 curl 上传,但它不起作用,我收到错误 Could not decode string.
Google Apps 脚本代码:
function doPost(e) {
var folder, folders = DriveApp.getFoldersByName("Uploads");
if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder("Uploads");
}
var data = Utilities.base64Decode(e.parameters.data);
var blob = Utilities.newBlob(data, e.parameters.mimetype, e.parameters.filename);
var id = "Your File Download Link: https://drive.google.com/uc?id="+folder.createFile(blob).getId();
return ContentService.createTextOutput(id)
}
我的 curl 命令:
curl -i -X POST -H 'Content-Type: multipart/form-data' -F 'data=test.png' https://script.google.com/macros/s/AKfycbwcGij0UNl8c9OJEpHbUvGF4KTJYbBOkDA9m882BLJVnWpFrc4/exec
【问题讨论】:
-
@ale13 不,我使用 html 上传和工作没有问题,但我想使用 curl 通过 post 方法上传。
-
为什么要使用
doPost?你读过developers.google.com/apps-script/guides/triggers吗? -
@Rubén 虽然这是我的猜测,但从不使用访问令牌的 OP 的 curl 命令来看,我认为 OP 可能想要在未经授权的情况下上传文件。
-
你能准确解释一下你想要达到的目标吗?此外,发布的答案是否解决了您的问题? @Javad