如何在谷歌驱动器文件夹中获取图像的网址?

时间:2015-03-24 02:30:54

标签: google-drive-api

假设我在google驱动器文件夹中有200张图片,有没有办法可以获得每个图片的直接网址?

2 个答案:

答案 0 :(得分:0)

是的,如果他们是公开分享的。

您可以在驱动器中看到任何文件中的链接,右键单击并单击“获取链接”或单击文件并单击链接图标。

此链接也可以使用sdk访问。

答案 1 :(得分:0)

如果您习惯使用Google脚本,这里的脚本会列出包含网址的文件。这将深入几层,并找到您放置它的父文件夹中的所有文件。

要使用,请创建新的电子表格并添加此脚本。 listFilesInFolder是您要运行的函数。如果它给你太多的信息,只需削减代码。

*这确实使用了已弃用的代码,但是如果你有一次性使用,那么这就是你的票。

function getParentFolder() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var SSID=ss.getId();

  var fileInDrive = DriveApp.getFolderById(SSID);
  var folderinDrive = fileInDrive.getParents().next().getName();

  return folderinDrive;
}

function listFilesInFolder() {
  var parentFolder = getParentFolder();
  Logger.log("Parent: " + parentFolder);
  var folder = DocsList.getFolder(parentFolder);
  var parentFiles = folder.getFiles();
  var folders = folder.getFolders();

  var file;
  var allFolders;
  var subFileList;
  var data;

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet;
  sheet.clear();

  sheet.appendRow(["Name", "Date Created", "URL", "Type", "Last Updated", "Parent Folder"]);

  // Every file in the folder containing this file.
  for (var i = 0; i < parentFiles.length; i++) {
    file = parentFiles[i];

    var parentName = "";
    try {
      var parentName = file.getParents()[0].getName();
    } catch(err) {}   

    data = [ 
      file.getName(),
      file.getDateCreated(),
      file.getUrl(),
      file.getFileType(),
      file.getLastUpdated(),
      parentFolder
    ];

    sheet.appendRow(data);
  } 
  // Every subfolder in the folder containing this file.
  for (var i = 0; i < folders.length; i++) {
    allFolders = folders[i];
    var parentName = "";
    try {
      var parentName = allFolders.getParents()[0].getName();
    } catch(err) {}    
    data = [ 
      allFolders.getName(),
      allFolders.getDateCreated(),
      allFolders.getUrl(),
      "folder",
      allFolders.getLastUpdated(),
      parentName
    ];

    sheet.appendRow(data);
  }


  for (var i = 0; i < folders.length; i++) {
    allFolders = folders[i];
    var subFiles = allFolders.getFiles();

    for (var j = 0; j < 100; j++) {
      subFileList = subFiles[j];
      try {
        data = [ 
          subFileList.getName(),
          subFileList.getDateCreated(),
          subFileList.getUrl(),
          subFileList.getFileType(),
          subFileList.getLastUpdated(),
          subFileList.getParents()[0].getName()
        ];

        sheet.appendRow(data);
      } catch(err) {

      }
    }
  }
};