api 接口中应用 refresh header

  • 一段文件下载伪代码(服务器端)

if (文件存在)
	return 文件流;
else
{   
	1、通过消息队列通知OSS下载组件下载这个本地不存在的文件(这个操作是异步的);
	2、响应头加入 refresh , 3秒后重新加载;
	return this.Ok(); 返回 http status = 200
}

文件上传服务器后,会自动备份到OSS进行统一保存,本地磁盘也会保存一段时间,但很有可能一段时间后删除。

文件上传后备份到OSS,对于客户端是透明的,文件上传到服务器磁盘后,客户端的上传请求就得到了响应,也就是结束了。

但是客户端请求下载就会出现很多的意外的情况

  1. 文件压根不存在,不管在服务器磁盘还是OSS
  2. 文件不存在磁盘,但是存在于OSS

客户端请求下载文件也会有两种方式

  1. 前台下载,浏览器自动响应处理,比如在浏览器打开PDF,查看图片
  2. 后台下载,Ajax方式下载,由js 代码响应处理

不管客户端采用的是前台下载,还是后台下载,对于后台服务端都是一样的

模拟下载文件的测试

异常情况1 .文件存在于OSS上,但是不存在于磁盘上,响应信息如下

  • 第一次请求响应信息
    浏览器接收到的响应中包含 refresh 会自动3秒后发送第二次请求

  • 第二次请求
    在这里插入图片描述

Content-Type、Content-Length 等都出现了

异常情况2 .文件根本不存在,响应信息如下

  • 第一次请求

    浏览器接收到的响应中包含 refresh 会自动3秒后发送第二次请求

  • 第二次请求
    在这里插入图片描述

这个是一个 404 返回,浏览器停止继续发送请求

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值