如何通过Google Apps脚本获取Google云端硬盘文件的“可共享链接”?

时间:2017-07-09 04:06:21

标签: google-apps-script

我认为获取文件的可共享链接很容易,例如file.getShareableLink(),但似乎事情并非如此简单。

我在这里发现了类似的帖子,但我无法理解(alternativeLinkShareable link for Google Drive file)。

真的没有直接的方法吗?我有数百个图像来提取可共享的链接,以便它们可以在线显示。

2 个答案:

答案 0 :(得分:7)

以下示例脚本怎么样?在此示例中,它检索特定文件夹中图像的共享URL。

示例脚本:

function myFunction() {
  var folderId = "### Specific folder ID ###";
  var files = DriveApp.getFolderById(folderId).getFiles();
  var result = [];
  while (files.hasNext()) {
      var file = files.next();
      file.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW);
      var temp = {
        file_name: file.getName(),
        url: "http://drive.google.com/uc?export=view&id=" + file.getId(),
      };
      result.push(temp);
  };
  Logger.log(JSON.stringify(result))
}

结果:

[
  {
    "file_name": "filename1",
    "url": "http://drive.google.com/uc?export=view&id=### file ID 1###"
  },
  {
    "file_name": "filename2",
    "url": "http://drive.google.com/uc?export=view&id=### file ID 2###"
  }
]

流程:

  1. 检索由folderId
  2. 设置的文件夹中的文件
  3. 修改文件的权限。这样,不登录的用户也可以看到这些文件。只有知道URL的用户才能看到它们。
  4. 检索文件名和文件ID。并使用文件ID检索文件URL。 URL是图像的直接链接。

    在此示例中,无法检查文件夹中的文件夹。如果您还要查看folderId设置的文件夹中的文件夹,请告诉我。

  5. 如果我误解了你的问题,我很抱歉。

答案 1 :(得分:0)

一种简单的方法是将'&export = download'添加到您的可共享链接中,这样会下载文件名及其文件名。

示例: https://drive.google.com/uc?id=1OjVXW2xK9eHcBAjJJygtcyYtiQBwX-tt&export=download