OSS缓存控制

原因:

阿里云的OSS外网流量太大,花费太高。可以做一下缓存控制。

方式:

普通上传的文件,通过阿里云的域名访问时有缓存的,如下返回304 Not Modified

但是通过自己的域名去访问,后台通过API去获取文件就没有缓存。如下:

如果我直接用nginx去后台,转发到阿里云的域名获取文件。也是可以缓存的。
问题就在与我们通过API去获取文件的时候,要控制response是返回文件内容,还是返回304。
根据阿里云文档通过OSS API的GetObject接口下载文档,也是支持If-Modified-SinceIf-MatchIf-None-Match等缓存请求头的。如下:
https://help.aliyun.com/document_detail/31980.html?spm=a2c4g.11186623.2.10.3b0125d1YAhtjx#reference-ccf-rgd-5db
如果我们自己写API去下载文档,就得把前端关于缓存的请求头处理一下,传递给OSS,并在response中返回对应的响应头给前端。 (如果没有敏感的文档下载,最好是做nginx代理转发下载请求。)

一些链接地址:

官方文档,上传文件可以做http Cache-Control:https://help.aliyun.com/document_detail/31859.html?spm=a2c4g.11186623.2.31.737c718bjxiPBK#concept-lkf-swy-5db
参考文档: https://www.jianshu.com/p/65710ab69c3b
https://developers.weixin.qq.com/community/develop/doc/000404946842982474490fead51000?_at=1560029220950

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

OSS缓存控制 - HelloWorld