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

MrG*_*les 4 google-apps-script

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

我在这里遇到了类似的帖子,但我无法理解(alternativeLink以及Google云端硬盘文件的可共享链接).

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

Tan*_*ike 8

下面的示例脚本怎么样?在此示例中,它检索特定文件夹中图像的共享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))
}
Run Code Online (Sandbox Code Playgroud)

结果:

[
  {
    "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###"
  }
]
Run Code Online (Sandbox Code Playgroud)

流 :

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

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

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