我们基本上使用推荐的云架构,其中源图像存储在 Azure Blob Storage 中,imageresizer 在 Azure App Service 上运行,Azure CDN 是 CDN 层。
尽管如此,我们还是遇到了 ImageResizer v3、Azure App Service 部署槽和 DiskCache 的问题。
我们在 Azure 应用服务上使用暂存槽来防止中断。我们还使用 DiskCache 插件。在没有任何配置的情况下,imagecache 将写入特定于插槽的 D:\home\site\wwwroot\imagecache\。
这会产生两个问题:
- 当我们交换插槽时,使用的图像缓存是陈旧的,并且会丢失很多图像。
- 在我们的应用服务计划中,我们总是有一个陈旧的图像缓存占用磁盘空间,我们在 Microsoft 的顾问建议使用 Blob 存储而不是虚拟本地文件系统用于 DiskCache。
我注意到没有 BlobCachePlugin 或 S3CachePlugin,我想知道这是否有充分的理由。
我的问题是:
- 是否有理由不使用实现 ICache 接口的自定义 BlobStorageCachePlugin 将图像缓存存储在 Azure Blob 存储中?
- 如果有充分的理由,您建议使用什么替代架构来避免部署槽的问题?