获取外部 URL 并保存到云端硬盘

时间:2021-02-25 16:33:31

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

我想获取 PDF 网址并将其保存到云端硬盘。文件夹 ID 和 URL 正确。

function uploadDoc(){
  var folder = DriveApp.getFolderById('my_folder_id');
  var url = 'my_url';

  var blob = UrlFetchApp.fetch(url);
  var blob2 = blob.getAs('appl‌​ication/pdf');

  var newFile = folder.createFile('filename.pdf',blob2);
}

当我运行这个时,我得到:

Exception: Converting from binary/octet-stream to appl‌​ication/pdf is not supported.

1 个答案:

答案 0 :(得分:1)

您需要解决两件事:

  1. UrlFetchApp.fetch(url) 之后,您需要使用 getBlob() methodgetAs('appl‌​ication/pdf') 方法不是严格要求的。

  2. 如果您使用的是 blob,则需要使用 createFile(blob) method

您正在使用 createFile(name, content) method 并且在此方法中,content 是字符串而不是 blob。

然后,要为新文件命名,您将需要 setName(name) method

function uploadDoc() {
  var url = 'https://www.gstatic.com/covid19/mobility/2021-02-21_AF_Mobility_Report_en.pdf';
  var foID = 'my_folder_id';
  var folder = DriveApp.getFolderById(foID);
  var blob = UrlFetchApp.fetch(url).getBlob();
  var newFile = folder.createFile(blob).setName('filename.pdf');
}