【发布时间】:2016-04-15 02:32:45
【问题描述】:
我从 Google Script 更新并尝试建立一个支持匿名上传到云端硬盘的脚本 (https://ctrlq.org/code/19747-google-forms-upload-files)。
到目前为止,我所做的是能够运行脚本并发现folder.createFile(blob) 函数无法上传文件大小超过 10Mb 的文件。然后我发现使用高级驱动服务(驱动 API)可能能够提供修复,所以我使用高级服务(Drive 而不是DriveApp)(https://developers.google.com/drive/v2/reference/files/insert#http-request)进行更改。但是,它会响应错误Exception: Empty response。
这是我的代码。
function uploadFiles(form) {
try {
var blob = form.file;
var contentType = blob.type;
var folderName = "Upload Folder";
var folder, folders = DriveApp.getFoldersByName(folderName);
if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(folderName);
}
var file = {
title: blob.name,
mimeType: contentType,
parents:[{id:folder.getId()}]
};
var options = {
uploadType: "multipart"
};
file = Drive.Files.insert(file, blob, options);
return "File uploaded successfully " + file.fileSize;
} catch (error) {
return error.toString();
}
}
它可以使用上面的代码上传media和multipart)。但是>10Mb还是失败了,还需要用resumable吗?
备注:我注意到有一个与我遇到的问题(Advanced Drive Service returning Empty Response Error when inserting file)类似的问题,但目前似乎还没有结论,所以我希望有人能帮助解决这个问题
【问题讨论】:
标签: google-apps-script google-drive-api