刷新 thumbnail/base url 的 Google Photos/Google 驱动器 API 的最佳方法
Best way to refresh the thumbnail/base url of Google Photos/Google Drive API
Google 建议在原始查询后 60 分钟后需要时再次检索基础 url,因为 url 已过期。
到目前为止,一切都很好。但是,如果我正在开发一个照片库并且我在一个网格中显示 5000 个或它们怎么办?我应该一次又一次地查询 API 吗?他们使用的最大页面大小为 100(而不是 google 驱动器的 pf 1000),因此如果这是真的,我们将启动许多请求。
我已经在本地缓存照片,但是当用户滚动到另一个部分时,url 将在一小时后过期。
最好的解决方案是什么?
Google 有一个针对该用例的批处理请求:
https://developers.google.com/photos/library/reference/rest/v1/mediaItems/batchGet
无论如何,您每次调用可以请求的最大项目数是 50,因此无论如何您都应该对其中一些请求进行排队。
就我个人而言,我在代码中将其设为自动。当我加载的 baseUrl 给我一个 403 时,它会自动获取 mediaitem 更新对象并重试。
此外,您不应在不同的应用程序启动中缓存基本 URL 或通常的媒体对象(假设您正在编写应用程序)。您应该只保留 mediaItem id 并在需要时重新加载它或整个集合。
Google 建议在原始查询后 60 分钟后需要时再次检索基础 url,因为 url 已过期。 到目前为止,一切都很好。但是,如果我正在开发一个照片库并且我在一个网格中显示 5000 个或它们怎么办?我应该一次又一次地查询 API 吗?他们使用的最大页面大小为 100(而不是 google 驱动器的 pf 1000),因此如果这是真的,我们将启动许多请求。 我已经在本地缓存照片,但是当用户滚动到另一个部分时,url 将在一小时后过期。
最好的解决方案是什么?
Google 有一个针对该用例的批处理请求: https://developers.google.com/photos/library/reference/rest/v1/mediaItems/batchGet
无论如何,您每次调用可以请求的最大项目数是 50,因此无论如何您都应该对其中一些请求进行排队。
就我个人而言,我在代码中将其设为自动。当我加载的 baseUrl 给我一个 403 时,它会自动获取 mediaitem 更新对象并重试。
此外,您不应在不同的应用程序启动中缓存基本 URL 或通常的媒体对象(假设您正在编写应用程序)。您应该只保留 mediaItem id 并在需要时重新加载它或整个集合。