Google api 尽管可以访问公用文件夹,Google Drive仍需要身份验证

Google api 尽管可以访问公用文件夹,Google Drive仍需要身份验证,google-api,google-drive-api,Google Api,Google Drive Api,如果文件夹具有允许具有链接的任何人读取的权限,请尝试使用从该文件夹下载特定文件 https://googledrive.com/host/<<<folder_id>>>/<<<file_name>>> https://googledrive.com/host// 将重定向到Google服务登录页面 但是,如果文件夹具有允许任何人查找和读取该文件的权限,则将正确下载该文件,而不会重定向到服务登录页面 尽管UI声称“无需登录

如果文件夹具有允许具有链接的任何人读取的权限,请尝试使用从该文件夹下载特定文件

https://googledrive.com/host/<<<folder_id>>>/<<<file_name>>>
https://googledrive.com/host//
将重定向到Google服务登录页面

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


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

是的,这是预期行为。您试图构建的URL来自驱动器的托管功能。那里很方便

使用较小的权限,可以通过用户界面下载来自共享的链接

如果您正在寻找programatic下载,则可以使用驱动器API进行下载,而无需验证(),尽管这至少需要注册应用程序的API密钥

更新:

请注意,当存在有效的
源文件
头文件时,服务器仅响应CORS所需的头文件(浏览器通常包括此文件,因此通常不需要执行任何操作。)例如:

curl -vv 'https://www.googleapis.com/drive/v2/files/FILE_ID_HERE?key=YOUR_API_KEY&alt=media' > out.tmp
上述请求不会产生
访问控制-*
头。像浏览器那样包括
原点
标题:

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

然而,我接受了答案;不幸的是,API资源不支持预期用途所需的CORS。但是返回的资源不支持CORS。对于问题中构造的URL,可以用文件id替换文件名吗?或者必须使用名称/路径?驱动器API支持CORS,下载时也应支持CORS。除非出现倒退,否则它应该可以正常工作。您会遇到什么错误?如果请求中存在有效的源文件头,则API仅返回access-*头。如果查看我链接的pastebin,您将看到该请求具有有效的
源文件头,其值为
www.example.com