如何使用 Google API 将文件上传到共享文件夹(任何拥有 link 的人都可以完全访问)?

How to upload file to a shared folder (fully accessible by anyone with link) using Google API?

如果唯一给出的是 link 共享文件夹(属于不同的人),我可以将数据上传到该文件夹​​吗?

如果文件夹公开共享给作为作者的任何人,您可以将文件上传到共享文件夹。

curl 命令示例:

例如使用curl命令时,示例curl命令如下

curl -X POST \
-H "Authorization: Bearer ###your access token###" \
-F 'metadata={"parents": ["###folderId###"], "name": "sample filename"};type=application/json;charset=UTF-8' \
-F "file=@sample.txt;type=text/plain;charset=UTF-8" \
"https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart"
  • 在这个curl命令中,sample.txt的文本文件被上传到共享文件夹。
  • 关于-H "Authorization: Bearer ###your access token###",在这种情况下,请使用您的访问令牌。

示例脚本:

如果您无法检索访问令牌,例如,作为上传文件的简单示例脚本,使用 Google Apps 脚本怎么样?当使用 Google Apps 脚本时,可以自动检索访问令牌。但是在这种情况下,需要将上传的文件放到Google Drive中。如果您想测试此脚本,请将以下脚本复制并粘贴到 Google Apps 脚本项目的脚本编辑器中。并且,请设置文件ID和文件夹ID,运行 sample。当此脚本为 运行 时,将打开一个用于授权范围的对话框。当您授权时,文件被上传到文件夹。

function sample() {
  const fileId = "###"; // Please set the file ID of the file you want to upload.
  const folderId = "###"; // Please set the folder ID of the shared folder.

  const file = DriveApp.getFileById(fileId);
  const folder = DriveApp.getFolderById(folderId);
  file.makeCopy(file.getName(), folder);
}

注:

  • uploadType=media的情况下,最大文件大小为5 MB。当您想上传大文件时,请使用uploadType=resumable。这种情况请查看官方文档。 Ref

参考: