我们说我有一个不可发现的公共文件夹。如果我公开其中一个文件的文件ID以供下载,那么不受信任的用户是否可以获得指向包含该文件的文件夹的链接,或者指向该文件夹中其他文件的链接?我已经对Google API进行了搜索,但未发现任何相关信息。
编辑: 好像有些人还没有得到问题。让我用图解说明一下。我们假设我在Google云端硬盘中有一个公用文件夹:
Folder A |
|-- File X
|-- File Y
|-- File Z
所以问题是,如果其他人拥有文件X的文件ID,我可以使用,那么他可以获得文件夹A的文件ID吗?或者文件Y和Z的文件ID?这就是我所关注的问题。
答案 0 :(得分:1)
如果您在Google云端硬盘上创建文件,那就是公开的。
只有您设置为公开的文件才可以访问。
公共驱动器文件的重点是任何人都可以在没有权限的情况下访问它们。你唯一的安全措施就是汤姆在街上不能进行搜索并找到你的文件,或者有一天他们会在google搜索中弹出它吗?
更新文件ID:
如果您公开文件ID,那么我可以使用文件ID并使用API下载文件,就像使用公共API密钥或使用Google API资源管理器一样。该文件是公共的,任何人都可以下载具有id的文件。过去也可以获取文件ID并使用它来创建URL,以便通过Google Drive网站直接下载。
https://docs.google.com/spreadsheets/d/ {}写到FileID /编辑#GID = 0
https://drive.google.com/drive/folders/ {}写到FileID
这主要不再适用于Google doc类型的文件。
我还可以使用文件ID查看文件所在的目录,并请求该目录中的文件列表。
使用给定文件ID的示例测试
https://www.googleapis.com/drive/v2/files/1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI?key= {my api key}
或者只是在本页面上试试我
响应
{
"kind": "drive#file",
"id": "1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI",
"etag": "\"G9mQazc6pdRCuGfUPB_oyY074Ug/MTUxNTY5MzM4NjYxNA\"",
"selfLink": "https://www.googleapis.com/drive/v2/files/1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI",
"webContentLink": "https://drive.google.com/uc?id=1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI&export=download",
"alternateLink": "https://drive.google.com/file/d/1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI/view?usp=drivesdk",
"embedLink": "https://drive.google.com/file/d/1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI/preview?usp=drivesdk",
"iconLink": "https://drive-thirdparty.googleusercontent.com/16/type/image/png",
"thumbnailLink": "https://lh3.googleusercontent.com/_vX1BrFIsR-lVnFR1-VS9tp2toDLNfE6Cf1m3RGEIG7--VQfp53OiNbrnLC_rOGmqUbfn6QHQ7c=s220",
"title": "splash.png",
"mimeType": "image/png",
"labels": {
"starred": false,
"hidden": false,
"trashed": false,
"restricted": false,
"viewed": false
},
"createdDate": "2018-01-11T09:31:51.426Z",
"modifiedDate": "2018-01-11T17:56:26.614Z",
"markedViewedByMeDate": "1970-01-01T00:00:00.000Z",
"version": "8",
"parents": [],
"downloadUrl": "https://doc-0g-6o-docs.googleusercontent.com/docs/securesc/1mngaurn1r7pdnvlih02e6t9l8me2de5/3q2i7ak140vftlc9c96evgvnsmri4m4v/1517565600000/18429462472537742596/06030588225573437243/1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI?e=download&gd=true",
"userPermission": {
"kind": "drive#permission",
"etag": "\"G9mQazc6pdRCuGfUPB_oyY074Ug/WUHObW5vTApa-BsGvLisiOGqWbA\"",
"id": "me",
"selfLink": "https://www.googleapis.com/drive/v2/files/1AzP6ISIrC8CvK3rTZfNBJ8qZL6LwcaSI/permissions/me",
"role": "reader",
"type": "user"
},
"originalFilename": "splash.png",
"fileExtension": "png",
"md5Checksum": "108e62ba72a0b33cb4bc7628e48d2e2c",
"fileSize": "22375",
"quotaBytesUsed": "0",
"ownerNames": [
"WU JUANG CHEN"
],
"owners": [
{
"kind": "drive#user",
"displayName": "WU JUANG CHEN",
"isAuthenticatedUser": false,
"permissionId": "18429462472537742596",
"emailAddress": "XXXX@connect.hku.hk"
}
],
"lastModifyingUserName": "WU JUANG CHEN",
"lastModifyingUser": {
"kind": "drive#user",
"displayName": "WU JUANG CHEN",
"isAuthenticatedUser": false,
"permissionId": "18429462472537742596",
"emailAddress": "xxxxx@connect.hku.hk"
},
"capabilities": {
"canCopy": true,
"canEdit": false
},
"editable": false,
"copyable": true,
"writersCanShare": true,
"shared": true,
"explicitlyTrashed": false,
"appDataContents": false,
"headRevisionId": "0B-l1jDyJ1EfRZERkZnJmcUZxRHlkUzk0bEx6bmhMUzd3WXdrPQ",
"imageMediaMetadata": {
"width": 375,
"height": 812,
"rotation": 0
},
"spaces": [
"drive"
]
}
分析
注意:" parent":[]应包含此文件的父目录的ID。我将假设它是私有或在您的根目录中。如果你说这个文件的目录是公开的,我认为谷歌的一个很棒的功能就是不显示这个。
这意味着答案是,如果您拥有文件ID,则无法访问文件夹ID。