Google 尽管有 public 文件夹访问权限,驱动器仍需要身份验证

Google Drive requires authentication despite public folder access

如果文件夹具有允许任何具有 link 权限的人读取的权限,则尝试使用

从该文件夹下载特定文件
https://googledrive.com/host/<<<folder_id>>>/<<<file_name>>>

将重定向到 Google 服务登录页面。

但是,如果该文件夹具有允许任何人找到它和读取该文件的权限,则该文件将被正确下载,而不会被重定向到服务登录页面。

尽管 UI 声称“...无需登录”,但这是预期的行为吗?

是的,这是有意为之的行为。您尝试构建的 URL 来自云端硬盘的托管功能。 requires using the "Public on the web" permission 在那里可以访问。

使用较小的权限,可以通过 UI 和 link 从共享中下载。

如果您正在寻找程序下载,您可以使用驱动器 API 进行下载而无需身份验证 (https://www.googleapis.com/drive/v2/files/FILE_ID?alt=media&key=YOUR_KEY),尽管这至少需要一个 API 密钥来注册应用

更新:

请注意,当存在有效的 origin header 时,服务器仅响应 CORS 所需的 header(浏览器通常包含此内容,因此通常不需要做任何事情。)例如:

curl -vv 'https://www.googleapis.com/drive/v2/files/FILE_ID_HERE?key=YOUR_API_KEY&alt=media' > out.tmp

上述请求不会产生 access-control-* headers。像浏览器那样包含 origin header:

curl -H 'origin: https://www.example.com' -vv 'https://www.googleapis.com/drive/v2/files/FILE_ID_HERE?key=YOUR_API_KEY&alt=media' > out.tmp