2016-12-14 198 views
4

Google Drive v2接口在默认情况下会返回完整的文件资源,当我执行一个文件时。获取。但是,即使文档指出它应该返回一个文件资源,它只会返回一个部分文件资源,但当我对V3发出相同的请求时。如何从Google Drive V3获取完整文件的响应

GET /drive/v2/files/0B5pJkOVaKccEVEsybFA2WjJjQ1k?access_token={Token} 

返回完整的文件

{ 
    "mimeType": "text/plain", 
    "version": "416164", 
    "appDataContents": false, 
    "thumbnailLink": "https://lh3.googleusercontent.com/UE-d50Sda_j2pT1dzw8Ll1r7W2gYZNrofX2YS-VKG7Ykl4FAqe9NPPNPA3HX3PBdhQ8uow=s220", 
    "labels": { 
    "restricted": false, 
    "starred": false, 
    "viewed": false, 
    "hidden": false, 
    "trashed": false 
    }, 
    "explicitlyTrashed": false, 
    "lastModifyingUserName": "Linda Lawton", 
    "writersCanShare": true, 
    "owners": [ 
    { 
     "picture": { 
     "url": "https://lh5.googleusercontent.com/-a1CWlFnA5xE/AAAAAAAAAAI/AAAAAAAAdVM/sHkU9F-AwwQ/s64/photo.jpg" 
     }, 
     "kind": "drive#user", 
     "displayName": "Linda Lawton", 
     "permissionId": "6030588225573437243", 
     "isAuthenticatedUser": true, 
     "emailAddress": "[email protected]" 
    } 
    ], 
    "id": "0B5pJkOVaKccEVEsybFA2WjJjQ1k", 
    "lastModifyingUser": { 
    "picture": { 
     "url": "https://lh5.googleusercontent.com/-a1CWlFnA5xE/AAAAAAAAAAI/AAAAAAAAdVM/sHkU9F-AwwQ/s64/photo.jpg" 
    }, 
    "kind": "drive#user", 
    "displayName": "Linda Lawton", 
    "permissionId": "06030588225573437243", 
    "isAuthenticatedUser": true, 
    "emailAddress": "[email protected]" 
    }, 
    "title": "deleteme.txt", 
    "ownerNames": [ 
    "Linda Lawton" 
    ], 
    "etag": "\"dyf6dc5nFpQUIZ2nJvOu2LyLJk8/MTQ4MTU0MTI1NzI2MQ\"", 
    "parents": [ 
    { 
     "isRoot": true, 
     "kind": "drive#parentReference", 
     "id": "0AJpJkOVaKccEUk9PVA", 
     "selfLink": "https://www.googleapis.com/drive/v2/files/0B5pJkOVaKccEVEsybFA2WjJjQ1k/parents/0AJpJkOVaKccEUk9PVA", 
     "parentLink": "https://www.googleapis.com/drive/v2/files/0AJpJkOVaKccEUk9PVA" 
    } 
    ], 
    "shared": false, 
    "originalFilename": "deleteme.txt", 
    "description": "Test Description", 
    "webContentLink": "https://drive.google.com/uc?id=0B5pJkOVaKccEVEsybFA2WjJjQ1k&export=download", 
    "editable": true, 
    "embedLink": "https://drive.google.com/file/d/0B5pJkOVaKccEVEsybFA2WjJjQ1k/preview?usp=drivesdk", 
    "markedViewedByMeDate": "1970-01-01T00:00:00.000Z", 
    "quotaBytesUsed": "150", 
    "modifiedDate": "2016-12-12T11:14:17.261Z", 
    "createdDate": "2016-12-12T11:14:17.261Z", 
    "md5Checksum": "8034035d0be478ab4e4c9bed279a5ff6", 
    "iconLink": "https://ssl.gstatic.com/docs/doclist/images/icon_10_text_list.png", 
    "kind": "drive#file", 
    "alternateLink": "https://drive.google.com/file/d/0B5pJkOVaKccEVEsybFA2WjJjQ1k/view?usp=drivesdk", 
    "copyable": true, 
    "modifiedByMeDate": "2016-12-12T11:14:17.261Z", 
    "downloadUrl": "https://doc-00-38-docs.googleusercontent.com/docs/securesc/1mngaurn1r7pdnvlih02e6t9l8me2de5/5h0plr5pqk919iiraojovqrovifi85g7/1481702400000/06030588225573437243/06030588225573437243/0B5pJkOVaKccEVEsybFA2WjJjQ1k?e=download&gd=true", 
    "userPermission": { 
    "kind": "drive#permission", 
    "etag": "\"dyf6dc5nFpQUIZ2nJvOu2LyLJk8/-EUeXLzWA6FGgRjCErcDZHhfLzg\"", 
    "role": "owner", 
    "type": "user", 
    "id": "me", 
    "selfLink": "https://www.googleapis.com/drive/v2/files/0B5pJkOVaKccEVEsybFA2WjJjQ1k/permissions/me" 
    }, 
    "spaces": [ 
    "drive" 
    ], 
    "fileExtension": "txt", 
    "headRevisionId": "0B5pJkOVaKccEMW0yMitzcklkaWtFZ3FIS1l6Q2x5RGpKQkNjPQ", 
    "selfLink": "https://www.googleapis.com/drive/v2/files/0B5pJkOVaKccEVEsybFA2WjJjQ1k", 
    "fileSize": "150" 
} 

然而,当我做对V3

GET /drive/v3/files/0B5pJkOVaKccEVEsybFA2WjJjQ1k?access_token={Token} 

了同样的要求它只返回部分的元数据

{ 
    "mimeType": "text/plain", 
    "kind": "drive#file", 
    "id": "0B5pJkOVaKccEVEsybFA2WjJjQ1k", 
    "name": "deleteme.txt" 
} 

我发现,通过加入t他领域参数我可以从V3请求额外的参数。但我不能缝隙找到一种方式来返回一个请求中的所有字段。

字段
选择器指定要包含在 响应中的字段的子集。
有关更多信息,请参阅“性能提示”文档中的部分响应部分 。用于更好的性能。

它的一个获取请求,所以我不关心性能我只需要查看此文件的所有数据。

回答

13

在文档中挖掘后,我设法找到了一个comment

如果需要,在字段选择中使用通配符。
例如:fields = items/pagemap/*选择页面地图中的所有对象。

所以我试了这个。

GET /drive/v3/files/0B5pJkOVaKccEVEsybFA2WjJjQ1k?access_token={Token}&fields=* 

果然它返回了完整的文件资源。

解决方案是将fields=*添加到请求中。我个人认为这应该是默认的。

+0

这是一个尝试提高性能。随着文件资源发展到包含越来越多的属性,其中一些属性可能需要昂贵的获取或获取,或者可能堵塞Googfle的管道,因此迫使开发人员仅指定她需要的应用程序的属性是有意义的。 – pinoyyid

+0

我获得1000行Google Analytics数据,目前可以包含7个维度和10个指标。而且你认为驱动团队担心单个元数据的获取将会返回。即使他们添加了100个新字段,我也不认为Google会感受到它。 – DaImTo

+0

太糟糕了,这在https://developers.google.com/drive/v3/reference/files/get –

相关问题