内容提要
Vercel Blob 现在支持私有存储的一致性读取。通过在 get() 或 presignUrl() 中传递 useCache: false,可以确保读取反映最新写入。新路径下的 blob 立即可读,而覆盖现有路径的 blob 可能在 60 秒内返回缓存版本。
关键要点
-
Vercel Blob 现在支持私有存储的一致性读取。
-
通过在 get() 或 presignUrl() 中传递 useCache: false,可以确保读取反映最新写入。
-
新路径下的 blob 立即可读,而覆盖现有路径的 blob 可能在 60 秒内返回缓存版本。
-
当读取必须反映最新写入时,使用 useCache: false 可以绕过 CDN,读取时间会比缓存读取长,并产生快速源传输。
-
可以在私有 blob URL 上手动设置 cache=0 查询参数以绕过缓存。
延伸解读
一致性读取的实用性
Vercel Blob 的一致性读取功能对于需要实时数据的应用场景尤为重要。例如,在处理用户会话记录或实时报告时,确保读取到最新数据可以提高系统的可靠性和用户体验。使用 useCache: false 可以有效避免读取到过时的数据,尽管这会导致读取时间延长。
缓存机制的理解
在覆盖现有路径的 blob 时,可能会遇到缓存延迟的问题,最长可达 60 秒。这意味着在更新数据后,用户可能会看到旧版本的数据。因此,在设计系统时,开发者需要考虑何时使用一致性读取,以避免因缓存导致的数据不一致。
绕过 CDN 的注意事项
使用 useCache: false 选项可以绕过 CDN 直接读取最新数据,但这也意味着读取速度可能会受到影响。开发者在使用这一功能时,应权衡数据一致性与性能之间的关系,尤其是在高并发场景下,可能需要优化数据读取策略。
延伸问答
Vercel Blob 的一致性读取是什么?
Vercel Blob 的一致性读取允许用户在私有存储中读取最新写入的数据,确保读取反映最新的更改。
如何确保读取反映最新写入?
可以通过在 get() 或 presignUrl() 中传递 useCache: false 来确保读取反映最新写入。
覆盖现有路径的 blob 读取会有什么影响?
覆盖现有路径的 blob 可能在 60 秒内返回缓存版本,导致读取到旧数据。
使用 useCache: false 会有什么后果?
使用 useCache: false 会绕过 CDN,读取时间会比缓存读取长,并产生快速源传输。
如何手动绕过缓存?
可以在私有 blob URL 上手动设置 cache=0 查询参数来绕过缓存。
Vercel Blob SDK 的最新版本是什么?
最新的 Vercel Blob SDK 版本是 @vercel/blob@2.6.1。