首页 > 解决方案 > 无法使用 Google Drive Java SDK 上传文件的缩略图

问题描述

我一直在开发允许打开 Google Drive 无法为其生成缩略图的文件的应用程序,但我正在开发的应用程序可以。我一直在关注这篇文章:https ://developers.google.com/drive/api/v3/file#uploading_thumbnails ,结果在我的应用程序中有以下代码:

File file = drive.files().get(fileId).setFields("id,name,headRevisionId,hasThumbnail,contentHints").execute();
if (file != null && file.getHeadRevisionId().equals(versionId)) {
    File.ContentHints.Thumbnail customThumbnail = new File.ContentHints.Thumbnail();
    customThumbnail.encodeImage(imageData);
    customThumbnail.setMimeType("image/png");
    File.ContentHints contentHints = new File.ContentHints();
    contentHints.setThumbnail(customThumbnail);
    drive.files().update(fileId, new File().setContentHints(contentHints)).execute();
}

图像存在 - imageData 是 byte[] 并且其中包含适当的数据。Google Drive 似乎检索了这些数据,因为如果我尝试打开已上传缩略图的文件的预览(在 drive.google.com 上) - 它会尝试加载它,但不断显示“失败,重试”。

如果我进行“非安全”base64 编码 - 我可以在浏览器和任何查看器中打开此图像 URL,并且我尝试传递此“非安全”base64 编码字符串,但结果是相同的。

我的代码是否有问题,或者我在文档中遗漏了某些内容,或者这是 Google Drive 方面的问题?

标签: javagoogle-drive-api

解决方案


推荐阅读