首页 > 解决方案 > google drive skd:无法上传文件的缩略图

问题描述

我试图避免为 Google Drive 存储保存缩略图,因为他们有一种方法可以为任何文件保存自定义缩略图(来源:https ://developers.google.com/drive/api/v3/file#uploading_thumbnails ) 但是每当我执行创建或更新方法时,它都无法正常工作,在 Gdrive 中我只能看到“无法预览文件。显示此图像时出现问题”,所以发生了一些事情。我正在使用 gdrive java sdk,代码如下:

//get file and thumbnailData
byte[] data = getData()
byte[] thumbnailBytes = getThumbnail();

File file = new File().setName(name);

//create thumbnail with data 
File.ContentHints.Thumbnail thumbnail = new File.ContentHints.Thumbnail();
thumbnail.setMimeType("image/jpg");
thumbnail.encodeImage(thumbnailBytes);

//create content hints and add thumbnail to it
File.ContentHints contentHints = new File.ContentHints();
contentHints.setThumbnail(thumbnail);


file.setContentHints(contentHints);

File newFile = drive.files().create(file, new ByteArrayContent("", data)).execute();

ThumbnailsData 只是一个 jpg 文件

BufferedImage bImage = ImageIO.read(new java.io.File("sample.jpg"));
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ImageIO.write(bImage, "jpg", bos );
byte [] thumbnailBytes = bos.toByteArray();

在此处输入图像描述

这是输出。我做错了什么,有人可以帮忙吗?

标签: javagoogle-drive-api

解决方案


推荐阅读