【问题标题】:Download file to google drive folder using app script使用应用脚本将文件下载到谷歌驱动器文件夹
【发布时间】:2019-03-27 18:16:10
【问题描述】:

我正在使用此脚本将 google 表格单元格中设置的 URL 下载到 google 驱动器中名为“game_thumb”的特定文件夹 如果单元格 B1 是“yyyyy.com/picture.png”,我希望将 picture.png 下载到 google 驱动器文件夹。 我收到一个错误“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
}

【问题讨论】:

  • 我的回答是否向您展示了您想要的结果?你能告诉我吗?这对我学习也很有用。如果这可行,与您有相同问题的其他人也可以将您的问题作为可以解决的问题。如果您对我的回答有疑问,我深表歉意。到时候,可以问一下你现在的情况吗?我想学习解决你的问题。
  • 感谢您的回复。

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


【解决方案1】:
  • 您希望将下载的文件保存在名称为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”。

参考资料:

如果我误解了您的问题并且此修改不起作用,我深表歉意。可否提供当时的情况?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    相关资源
    最近更新 更多