使用应用程序脚本将文件下载到Google驱动器文件夹

时间:2019-03-27 18:16:11

标签: google-apps-script google-sheets google-drive-api

我正在使用此脚本将在Google表格单元格中设置的URL下载到Google驱动器中名为“ game_thumb”的特定文件夹中 如果单元格B1为“ yyyyy.com/picture.png”,则我希望picture.png将下载到google drive文件夹中。 我收到未定义的错误“ ReferenceError:“ DocsList”。(第5行)。 我也希望将文件重命名为包含Cell A1 (contentCellA1_picture.png)下载到驱动器之前。 我使用的代码:

function getFile(fileURL) {
  // see https://developers.google.com/apps-script/class_urlfetchapp
  var response = UrlFetchApp.fetch(fileURL);
  var fileBlob = response.getBlob()
  var folder = DocsList.getFolder('game_thumb');
  var result = folder.createFile(fileBlob);
  debugger;  // Stop to observe if in debugger
}

1 个答案:

答案 0 :(得分:0)

  • 您要将下载的文件保存在名为game_thumb的特定文件夹中。
  • 您要将单元格“ A1”的值设置为下载文件的文件名。

如果我的理解是正确的,那么该修改如何?

关于您的问题1:

从您的问题中发现,尽管我不确定数据是否是所需的文件blob,但是可以从URL中检索数据。因此,为消除错误,请进行以下修改。

发件人:

var folder = DocsList.getFolder('game_thumb');

收件人:

var folder = DriveApp.getFoldersByName('game_thumb').next();
  • 在此修改中,假定名称为game_thumb的文件夹在您的云端硬盘中只有一个。如果有多个相同名称的文件夹,请告诉我。

关于您的问题2:

请进行如下修改。

发件人:

var result = folder.createFile(fileBlob);

收件人:

var name = SpreadsheetApp.getActiveSheet().getRange("A1").getValue();
var result = folder.createFile(fileBlob).setName(name);
  • 根据您的问题,我不确定您使用的是容器绑定脚本还是独立脚本,也不确定单元格“ A1”在表格的哪个位置。因此,此修改假设使用活动工作表的单元格“ A1”。

参考:

如果我误解了您的问题,并且此修改不起作用,我深表歉意。那时,您可以提供有关情况的信息吗?