按顺序获取Google云端硬盘多个共享链接

时间:2017-01-26 01:34:22

标签: google-drive-api

我一直在使用Google云端硬盘的功能一段时间了,但我偶然发现了一个非常棘手的问题。

众所周知,您可以通过按住Shift键+选择文件,然后右键单击并选择“共享”和“获取链接”,从Google云端硬盘中的多个文件中获取多个共享链接

然而问题是,我得到的链接是完全随机的顺序!,我一直在检查它们是按日期或文件名或访问时间排序,但我无法弄清楚看似随意的订单背后的任何推理。

这非常令人讨厌,因为我尝试使用Google云端硬盘作为Google相册的替代方案,无需手动获取每张图片的链接即可直接链接到多张图片。

有没有办法通过实际文件顺序在Google云端硬盘中获取多个链接?(例如按文件名排序)

4 个答案:

答案 0 :(得分:1)

Google广告网络API请求没有排序选项。检索完整请求后,您需要在本地对信息进行排序。

注意:这不是我第一次看到这个问题的想法是发送功能请求。 Google Drive Issue Forum如果您决定这样做,请确保您明确说明您想要的内容以及您认为应该添加内容的原因。我倾向于以这种方式获得更好的结果

答案 1 :(得分:1)

我发现了一种“不是”的解决方案,虽然不是很简单,但我想总比没有好。

首先,您需要安装JDownloader,这是一个小型的下载管理器程序(当您下载较大的Google云端硬盘文件且互联网非常缓慢以至于无法在一个会话中完成它时,该程序非常有用),然后....

  • 以任意顺序获取Google云端硬盘共享链接
  • 将其粘贴到JDownloader链接抓取器选项卡中
  • 等待所有链接显示在“链接抓取器”标签中
  • 要对所有显示的链接进行排序,请单击“名称”,然后对字段进行排序
  • 现在,选择所有链接
  • 右键单击
  • 转到属性>显示下载URL
  • 选择此窗口中的所有链接
  • 右键单击
  • 选择“复制URL”
  • 现在,您已按名称对所有链接进行排序!恭喜!

我知道这是一个非常麻烦的过程,但是我确实找不到更好的解决方案,仍然愿意寻求更好的解决方案!

答案 2 :(得分:0)

我的解决方案是创建一个电子表格 Appscript。

  1. 在第一列 Run a function to create hyperlinks with name attached 中。
function linksBulk() {
  var ss=SpreadsheetApp.getActiveSpreadsheet();
  var s=ss.getActiveSheet();
  var c=s.getActiveCell();
  var fldr=DriveApp.getFolderById("PUT YOUR ID FOLDER HERE PLS");
  var files=fldr.getFiles();
  var names=[],f,str;
  while (files.hasNext()) {
    f=files.next();
    str='=hyperlink("' + f.getUrl() + '","' + f.getName() + '")';
    names.push([str]);
  }
  s.getRange(c.getRow(),c.getColumn(),names.length).setFormulas(names);
}
  1. 按 A-Z 排序。
  2. 在第二列 extract the URL 中。
function linkURL(reference) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var formula = SpreadsheetApp.getActiveRange().getFormula();
  var args = formula.match(/=\w+\((.*)\)/i);
  try {
    var range = sheet.getRange(args[1]);
  }
  catch(e) {
    throw new Error(args[1] + ' is not a valid range');
  }
  var formulas = range.getFormulas();
  var output = [];
  for (var i = 0; i < formulas.length; i++) {
    var row = [];
    for (var j = 0; j < formulas[0].length; j++) {
      var url = formulas[i][j].match(/=hyperlink\("([^"]+)"/i);
      row.push(url ? url[1] : '');
    }
    output.push(row);
  }
  return output
}

答案 3 :(得分:-1)

我找到了解决方案。 1)为Google云端硬盘安装应用-“与Google云端硬盘批量共享URL缩短器” 2)根据需要订购文件 3)选择复制共享链接所需的所有文件 4)右键单击所选区域 5)打开方式:-批量共享网址。

在新窗口中,您将看到按设置顺序的链接列表。