尝试使用javascript将文件缩略图设置为Google Drive

Trying to set file thumbnail to Google Drive using javascript

本文关键字:设置 略图 Google Drive 文件 javascript      更新时间:2023-09-26

我试图添加一个缩略图到我的文件,我使用Javascript上传到驱动器。我正试着按照https://developers.google.com/drive/v3/web/file#uploading_thumbnails

的指示去做。为了创建网络安全的base64图像,我使用在线转换器将一个简单的红色正方形图像转换为base64,生成了

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP4z8DwHwAFAAH/VscvDQAAAABJRU5ErkJggg==

然后我把data:image/png;之后的所有东西都用_代替/,并删除=:

iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP4z8DwHwAFAAH_VscvDQAAAABJRU5ErkJggg

然后我在我的请求中添加了以下内容:

contentHints: {
    thumbnail: {
      image: "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP4z8DwHwAFAAH_VscvDQAAAABJRU5ErkJggg",
      mimeType: "image/png"
    }
  }

然而,我没有看到任何缩略图为我的文件,无论是在谷歌驱动器的列表或网格视图。

有什么想法吗?

这是我的整个文件保存代码:

function saveFile(content) {
  var boundary = '-------314159265358979323846';
  var header = JSON.stringify({
    title: "My file",
    mimeType: "application/myFile",
    parents: ['root'],
    contentHints: {
      thumbnail: {
        image: "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP4z8DwHwAFAAH_VscvDQAAAABJRU5ErkJggg",
        mimeType: "image/png"
      }
    }
  });
  var method = 'POST';
  var path = "/upload/drive/v2/files";
  var body = [
    "'r'n--" + boundary + "'r'nContent-Type: application/json'r'n'r'n" + header,
    "'r'n--" + boundary + "'r'nContent-Type: " + this.mimeType + "'r'n'r'n" + (content.getContentAsJSON()),
    "'r'n--" + boundary + "--"].join('');
  var request = gapi.client.request({
    path: path,
    method: method,
    params: {
      uploadType: 'multipart'
    },
    headers: {
      'Content-Type': 'multipart/related; boundary="' + boundary + '"'
    },
    body: body
  });
  request.execute(file);
};

当您使用v3时,端点URL路径应该是

var path = "/upload/drive/v3/files";

对于v2,参考在https://developers.google.com/drive/v2/web/file#uploading_thumbnails,它有一个不同的结构/语法


顺便说一下,请注意"如果Drive可以从文件生成缩略图,那么它将使用生成的缩略图,而忽略您可能上传的任何缩略图。"


我也发现你的缩略图不符合这个要求:"缩略图的最小宽度是220px。"

你可以试试下面的,220x20px

"iVBORw0KGgoAAAANSUhEUgAAANwAAAAUCAYAAADm4VNYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAABaSURBVHhe7dMxAcAgEMDALzo61r-zaoAFDZnulijI87_fHiCxboGA4SBkOAgZDkKGg5DhIGQ4CBkOQoaDkOEgZDgIGQ5ChoOQ4SBkOAgZDkKGg5DhIGQ4yMwcJVwCVCif97cAAAAASUVORK5CYII"