我正在使用Google Drive API(PHP)将一些照片上传到我的云端硬盘.上载文件时,Google_DriveFile将在响应中返回一个对象以确认成功传输.它包括一个thumbnailLink可通过getThumbnailLinkgetter 访问的字段.其内容可能如下所示:
直到今天,我确信链接不会随着时间的推移而自行改变.但是,当我尝试在我的驱动器上显示照片的缩略图时,使用我保存在本地数据库中的缓存地址,我收到403错误 - 您可以在上述链接下看到它.我向API询问了缩略图的当前链接,现在它完全不同了.
它发生在我身上只有一次,但对于多个文件,即我在驱动器上的所有文件突然得到了新的缩略图链接.
有没有办法快速检索文档的缩略图(最好是照片)一些常数值,或确保它不会改变?完美的解决方案是在包含文档的链接下访问缩略图,id而不是可能更改的某些哈希.
我已经阅读了他们提供的 API 文档:
重要提示:每次文件内容发生更改时,缩略图都会失效。提供缩略图时,每次修改内容时上传新的缩略图非常重要。
根据信息,这意味着只有当文件内容被修改时才会生成新的缩略图。但就你而言,这确实很奇怪,内容没有改变,但缩略图改变了。从文档来看,没有可用的批处理过程,但可以使用另一种方法,即Web Hook
根据文档,有一个可用的网络挂钩Files:Watch,即可以跟踪对文件进行的更改的过程。因此,这意味着每次内容更改时都会运行挂钩,并且您可以更改图像缩略图的缓存。
可以发送HTTP请求来请求观看文件变化
POST https://www.googleapis.com/drive/v2/files/fileId/watch
Run Code Online (Sandbox Code Playgroud)
这里fileID指的是加载文件后提供的ID。
在请求正文中,提供具有以下结构的数据:
id ==> string (A UUID or similar unique string that identifies
this channel.)
token# ==> string (An arbitrary string delivered to the target address with
each notification delivered over this channel).
expiration# => long (Date and time of notification channel expiration,
expressed as a Unix timestamp, in milliseconds.)
type ==> string (The type of delivery mechanism used for this channel.
The only option is web_hook.)
address => string (The address where notifications are delivered
for this channel.)
# Optional.
Run Code Online (Sandbox Code Playgroud)
如果内容发生更改,则会生成新的缩略图,并且挂钩将通知您地址,通过您的地址您可以获取新信息。
| 归档时间: |
|
| 查看次数: |
11433 次 |
| 最近记录: |