我有一个用Sails JS编写的应用程序。 我想为我的S3文件设置缓存。 我不确定从哪里开始,我是否需要使用我的Image GET功能做些什么?有没有人有过为S3资产设置缓存的经验?
这是我对用户头像的获取功能: var SkipperDisk = require(' skipper-s3'); var fileAdapter = SkipperDisk( { key:' xxx', 秘密:' xxx + xxx', 桶:' xxx-xxx' }); fileAdapter.read(user.avatarFd).on(' error',function(err){ // return res.serverError(err); return res.redirect(' /noavatar.gif'); })管(RES); });
答案 0 :(得分:0)
为什么不为您的S3存储桶启用静态网站托管?将图像上传到可由images.yourapp.com/unique-image-path
将每个用户的头像网址存储在数据库中。
返回图片网址而不是返回图片。
这样做可能会帮助您利用客户端缓存。
将文件上传到S3时,您可以为文件设置元数据。将Expires
标头设置为将来的日期以帮助缓存。您还可以设置Cache-Control
标头。 Skipper-s3
支持在上传到S3时设置文件的标头。
https://github.com/balderdashy/skipper#uploading-files-to-s3
http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html#RESTObjectPUT-requests