我目前在Google表格中有一个Google App脚本,该脚本可以为我提供文件夹的URL,然后可以使用该URL下载。虽然这是一个额外的步骤,但我想删除它,并直接获取压缩内容的URL。
这是我的代码(谷歌应用程序脚本):
function downloadSelectedScripts() {
// ...
var scriptFiles = getScriptFiles(scriptFileNames)
var tempFolder = copyFilesToTempFolder(scriptFiles)
Browser.msgBox(tempFolder.getUrl())
}
function copyFilesToTempFolder(files) {
var tempFolder = DriveApp.getFolderById(FOLDERS.TEMP)
var tempSubFolder = tempFolder.createFolder('download_' + Date.now())
for (var i in files) {
var file = files[i]
file.makeCopy(file.getName(), tempSubFolder)
}
return tempSubFolder
}
答案 0 :(得分:1)
如果我的理解是正确的,那么该示例脚本如何?该脚本的流程如下。
使用此脚本时,请设置要压缩的文件夹的文件夹ID。
function myFunction() {
var folderId = "###"; // Please set the folder ID here.
var folder = DriveApp.getFolderById(folderId);
var files = folder.getFiles();
var blobs = [];
while (files.hasNext()) {
blobs.push(files.next().getBlob());
}
var zipBlob = Utilities.zip(blobs, folder.getName() + ".zip");
var fileId = DriveApp.createFile(zipBlob).getId();
var url = "https://drive.google.com/uc?export=download&id=" + fileId;
Logger.log(url);
}
按如下所示返回zip文件的直接链接。
https://drive.google.com/uc?export=download&id=###