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