这是有关在Heroku上运行的Rails应用程序,其在CloudFront后面运行,并从Bucketeer附加组件提供ActiveStorage图像的内容。
对于css,js和甚至关键的重要请求(例如从API获取的搜索结果、第三方信息等),Rails应用程序本身和CloudFront中的缓存配置都非常准确。
我无法弄清楚如何缓存来自Bucketeer附加组件的图像。
现在,这些图像似乎每次都来自Bucketeer存储桶。它们没有任何缓存TTL。
我希望将它们在CloudFront级别和访问者的浏览器级别上缓存长达一年。
这可能吗?
似乎Bucketeer附加组件本身并不会让我们控制存储桶和/或服务处理缓存的方式。
我该在哪里强制这些文件显示缓存指令?
对于css,js和甚至关键的重要请求(例如从API获取的搜索结果、第三方信息等),Rails应用程序本身和CloudFront中的缓存配置都非常准确。
我无法弄清楚如何缓存来自Bucketeer附加组件的图像。
现在,这些图像似乎每次都来自Bucketeer存储桶。它们没有任何缓存TTL。
我希望将它们在CloudFront级别和访问者的浏览器级别上缓存长达一年。
这可能吗?
似乎Bucketeer附加组件本身并不会让我们控制存储桶和/或服务处理缓存的方式。
我该在哪里强制这些文件显示缓存指令?
rails_admin
完成的。这可能有关吗? - vivipoitstorage.yml
中应该有一行service: S3
(完整内容请参见更新后的答案)如果不是S3,您应该检查期望的ActiveStorage服务接受哪些选项。服务列表可以在此处找到 https://github.com/rails/rails/tree/6-0-stable/activestorage/lib/active_storage/serviceGems可能会在相同命名空间下提供自定义服务 - Alex Suslyakov