我的应用程序正在使用 OAuth2 服务帐户从用户的 Google 云端硬盘复制文件。我通过 Java 使用 Google Drive 客户端 api 来获取请求范围为“https://www.googleapis.com/auth/drive ”的 Drive 对象。我可以复制 Google 文档文档,但缩略图链接不可检索。我收到 403 禁止错误。我非常有信心这是谷歌方面的一个错误。如果我在获取 403 Forbidden 结果的代码中放置一个断点,我就可以(当以我从中复制内容的 Google 云端硬盘的用户身份登录时)使用thumbnailLink 在浏览器中获取缩略图。
这是我正在使用的代码的重写片段,其中 sourceFile 是从中复制的 com.google.api.services.drive.model.File,sourceDrive 是 com.google.api.services.drive .我上面提到的驱动对象:
File newFile = new File();
newFile.setTitle( sourceFile.getTitle() );
newFile.setDescription( sourceFile.getDescription() );
newFile.setParents( sourceFile.getParents() );
File copiedFile = sourceDrive.files().copy( sourceFile.getId(), newFile ).execute();
String thumbnailLink = copiedFile.getThumbnailLink();
HttpRequest request = sourceDrive.getRequestFactory().buildGetRequest( new GenericUrl( thumbnailLink ) );
HttpResponse response = request.execute();
如上所述,request.execute() 行由于返回 403 Forbidden 错误而产生异常。如果我在上面代码片段的最后一行放置一个断点,我就可以获取缩略图链接并将其粘贴到以从中复制驱动器的用户身份登录的浏览器中,并且成功返回缩略图。
最佳答案
您可以使用
创建缩略图链接https://drive.google.com/thumbnail?id={YOUR_IMAGE_FILE_ID}
默认情况下,将返回 220 px 的缩略图(max-width-220px max-height-220px,保持宽高比)
您可以通过链接发送更多参数,例如宽度、高度 然后我们需要使用 'sz' 查询字符串 https://drive.google.com/thumbnail?sz=w100-h100&id={YOUR_IMAGE_FILE_ID}
这里sz=w100-h100表示高度100px,宽度100px。你也可以通过他们中的任何一个。 如果您同时发送高度和宽度,则必须确定这些值是否保持图像的原始宽高比。
关于google-drive-api - 无法使用 Google Drive API 获取缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23548871/