使用应用脚本将文件下载到google drive文件夹

问题描述 投票:1回答:1

我正在使用此脚本将谷歌工作表单元格中设置的URL下载到谷歌驱动器中名为“game_thumb”的特定文件夹中如果单元格B1是“yyyyy.com/picture.png”我希望将picture.png下载到谷歌驱动文件夹。我得到一个错误“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-sdk
1个回答
0
投票
  • 您希望将下载的文件保存在名为game_thumb的特定文件夹中。
  • 您想要将单元格“A1”的值设置为下载文件的文件名。

如果我的理解是正确的,那么这个修改怎么样?

对于你的问题1:

根据您的问题,我发现虽然我不确定数据是否是您想要的文件blob,但可以检索URL中的数据。因此,为了消除错误,请修改如下。

From:

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

To:

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

对于你的问题2:

请修改如下。

From:

var result = folder.createFile(fileBlob);

To:

var name = SpreadsheetApp.getActiveSheet().getRange("A1").getValue();
var result = folder.createFile(fileBlob).setName(name);
  • 从您的问题来看,我不确定您是使用容器绑定脚本还是独立脚本,而且我也不确定单元格“A1”在哪里。因此,该修改假设使用活性纸的单元“A1”。

参考文献:

如果我误解了你的问题并且这个修改不起作用,我道歉。那时,你能提供有关情况的资料吗?

© www.soinside.com 2019 - 2024. All rights reserved.