【问题标题】:Google Drive API v3 for iOS : How to get thumbnails?适用于 iOS 的 Google Drive API v3:如何获取缩略图?
【发布时间】:2016-12-10 06:21:13
【问题描述】:
过去,使用 Google Drive API v2,我可以轻松地在 GTLDriveFile 上使用属性 thumbnailLink 获取图片或视频的缩略图。
但是现在,使用我目前与 Swift 一起使用的 API v3,我从 Google Drive 获得的文件的 thumbnailLink 为零,所以我可以做些什么来获取存储在用户的 Google Drive 中的图像和视频的缩略图.我需要在我的 iOS 应用中显示这些论文。
【问题讨论】:
标签:
ios
swift
google-drive-api
thumbnails
video-thumbnails
【解决方案1】:
确保在字段中指定thumbnailLink,例如
let query = GTLQueryDrive.queryForFilesList()
query.fields = "files(id, name, thumbnailLink)"
然后您可以访问属性thumbnailLink 获取图像和视频
【解决方案2】:
您必须使用 Drive REST API 方法 Files: get。该方法的结果包含thumbnailLink,但根据documentation,它是“文件缩略图的短暂链接”。通常持续数小时。
或者,您可以在应用程序中缓存缩略图,从而减少驱动器 API 请求的数量,从而提高页面性能。您需要获取上传文件的信息。最简单的缓存方法是简单地下载缩略图并将其保存为 fileid_thumb 某处,并在下一次请求时,在实际请求缩略图之前检查此类文件是否存在。查看here的详细说明。
您还可以通过在插入或更新调用期间设置File resource 上的contentHints.thumbnail 属性来上传缩略图,如下所示:
- 将
contentHints.thumbnail.image 设置为URL 安全的Base64 编码图像(请参阅RFC 4648 section 5)
- 将
contentHints.thumbnail.mimeType 设置为适合图像格式的类型
您也可以在此SO question 中查看接受的答案。
希望这会有所帮助!