如何在 Sails JS 和 Skipper 上设置 S3 缓存?

How Do You Set S3 Caching On Sails JS & Skipper?

我有一个用 Sails JS 编写的应用程序。 我想为我的 S3 文件设置缓存。 我不太确定从哪里开始,我需要用我的 Image GET 函数做些什么吗?有没有人有为 S3 资产设置缓存的经验?

这是我获取用户头像的函数: var SkipperDisk = require('skipper-s3'); var fileAdapter = SkipperDisk( { 键:'xxx', 秘密:'xxx+xxx', 桶:'xxx-xxx' }); fileAdapter.read(user.avatarFd).on('error', 函数(错误) { // return res.serverError(错误); return res.redirect('/noavatar.gif'); }).管道(资源); });

为什么不为您的 S3 存储桶启用静态网站托管?将图像上传到可以被images.yourapp.com/unique-image-path

引用的存储桶

在数据库中为每个用户存储头像url。

Return 图片 url 而不是返回图片。

这样做可能会帮助您利用客户端缓存。

将文件上传到S3时,您可以为文件设置元数据。将 Expires header 设置为将来的日期以帮助缓存。您还可以设置 Cache-Control header。 Skipper-s3支持文件上传到S3时设置headers。

https://github.com/balderdashy/skipper#uploading-files-to-s3

http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html#RESTObjectPUT-requests