我正在为新服务构建 API,其中一项服务允许上传图片。新上传的图片将自动调整大小,并创建多个版本并远程存储(s3 或 azure 存储)。这些功能已经运行良好。
现在,我遇到了一个概念上的差距,关于如何结合诸如 Cloudflare 之类的 cdn,以及如何保留一个可与 cdn、云存储无缝协作并从 api 动态生成的自定义子域。
我知道如果 Cloudflare 没有缓存文件,它将从支持 API 中提取文件。如果 API 检查文件是否已存储并发出 302,那么 cdn 是否会自动从 s3/azure 中提取文件?或者有其他方法可以让它工作吗?
答案1
不,cloudflare 会将 302 发送给客户端。支持 api 需要从 s3 或 azure 提取数据并将可缓存字节返回给 cloudflare。常见的实现方式是不要将其视为 api,而只是将其视为代理,并部署在 ec2 上(对于 s3 用例)。