我有一个谷歌表单,里面有文件的URL列表——大约有900个条目,可能95%的PDF都有几个.docs和.docxs。
我想把每个文件上传到谷歌硬盘文件夹——最好是我雇主工作区内的共享文件夹——保留文件名,我也在表格中。
我在这里找到了一些接近的答案,但它们使用了不推荐使用的谷歌脚本方法。
例如:
var urlOfThePdf = 'http://www.fostexinternational.com/docs/tech_support/pdfs/280_owners_manual.pdf';// an example of online pdf file
var folderName = 'GAS';// an example of folder name
function saveInDriveFolder(){
var folder = DocsList.getFolder(folderName);// get the folde
var file = UrlFetchApp.fetch(urlOfThePdf); // get the file content as blob
folder.createFile(file);//create the file directly in the folder
}
在getFileFromURL处失败。
如有任何建议,不胜感激。
这段代码将把pdf保存到所需的文件夹中:
var urlOfThePdf = '';// an example of online pdf file
var folderName = '';// an example of folder name
function saveInDriveFolder(){
var folders = DriveApp.getFoldersByName(folderName);
var file = UrlFetchApp.fetch(urlOfThePdf);
while (folders.hasNext()) {
var folder = folders.next();
folder.createFile(file);
}
}
它使用DriveApp.getFoldersByName()
方法获取具有该名称的所有文件夹,UrlFetchApp.fetch()
方法获取pdf,folder.createFile()
方法将pdf保存在文件夹中。
请注意,DriveApp.getFoldersByName()
获取一个文件夹迭代器(驱动器中所有具有该名称的文件夹(。在这段代码中,我将遍历所有具有该名称的文件夹,并将pdf保存在所有文件夹中。
我建议使用Drive.getFolderById()
并提供所需文件夹的id(可以从url中提取(。使用此方法,您将只将pdf保存在一个文件夹中,并且不必遍历代码中的文件夹(整个while循环可以替换为:folder.createFile(file);
(。