七牛更新缓存云存储中图片处理功能的存储缓存 会缓存多长时间

这篇文章主要介绍了七牛云存储使用中一些常见问题的解决经验,包括视频快进和图片预处理等一些常用功能方面问题的讨论,需要的朋友可以参考下
599错误处理如果在与七牛的交互中出现http状态码为599的错误,一句话,不要犹豫,直接联系七牛技术支持。七牛的文档也在很多地方提到这个错误,都是指导大家去联系技术支持的。笔者是在分块上传后的mkfile调用时出现的,联系技术支持后,说是调整了一下,让我重试。后来就好了&
分块上传无法从回调中获得文件的原始名简单上传采用的是multipart/form-data方式上传,七牛服务端能够从请求中获得文件的原始名,并支持使用魔法变量$(fname)回调业务。不过当使用分片上传的时候情况有所不同。分片上传需要在最后调用mkfile,来将分片拼接起来。但是,mkfile接口支持普通的请求,并没有附带文件名,所以七牛也就无法获得文件名,此时从$(fname)中是取不到文件名的。这个问题我也向七牛技术支持提交了问题,得到的结果是使用自定义变量mkfile支持将自定义变量放在url中,回调的时候自定义变量可以传递给业务。
慎用图片预处理七牛云支持很多对文件的预处理,其中最常用的应该就是图片预处理了,可以对图片的大小做变换等。七牛推荐使用GET的方式直接指定图片处理结果的url,像这样:
/gogopher.jpg?imageView2/1/w/200/h/200处理后的图片会自动缓存,用户不用关心,只要每次访问都用这个url就行了。然而,笔者在开始的时候,为了保持与其他文件形式统一的处理方法,对图片使用了预处理(因为视频什么的只能预处理),即在token中指定了预处理。此时问题出现了,从后台的日志看到,图片的预处理通知回调竟然比正常的上传成功回调还要快!这就导致预处理结果到来之前,我的业务服务器的数据库中还没有这个图片,无法保存预处理结果了。所以推荐还是使用url直接处理,对图片要慎用预处理
视频文件无法快进播放通常用户在观看视频的时候都会根据自己的喜好,快速将视频定位到指定的时间播放。实现这个功能,需要视频本身有关键帧信息、服务端需要支持关键帧播放请求。
但是笔者发现,在使用七牛云转化后的视频,这样做是无效的。于是咨询技术支持,得到的答案是:转化的文件是具有关键帧的,但七牛使用CDN加速,所以关键帧请求需要CDN的支持,如果想要用这个功能的话,需要单独联系销售或技术支持在CDN上配置,而且时间比较长。笔者联系了销售和技术支持,说是帮我配置,但到现在还没有搞定,因为最近这个也不是特别重要,所以也没有跟下去。
Callback校验这是可选的一个步骤。由于七牛云会在上传完成之后回调业务服务器,所以理论上说业务服务器需要校验这个回调的合理性。原理在七牛的文档中有,需要用到HMAC-SHA1签名函数。但是七牛的sdk中没有提供直接的方式来做校验,在研读文档、多次失败和查看sdk源码后,笔者终于校验成功了。关键的分歧在于,文档中的这句话:
获取明文:data = Request.URL.Path +&\n& +Request.Body这里的Request.URL.Path是否包含Querystring?答案是包含的!下面是笔者C#服务端的校验代码,使用的是ASP.NET Web Api:
C# Code复制内容到剪贴板
byte[]&key&=&System.Text.Encoding.UTF8.GetBytes(Qiniu.Conf.Config.SECRET_KEY); &&
using&(HMACSHA1&hmac&=&new&HMACSHA1(key)) &&
&&&&var&t&=&filterContext.Request.Content.ReadAsStringAsync(); &&
&&&&t.Wait(); &&
&&&&string&rawbody&=&t.R &&
&&&&log.DebugFormat(&request's&rawbody&:&{0}&,&rawbody); &&
&&&&string&text&=&filterContext.Request.RequestUri.PathAndQuery&+&&\n&&+& &&
&&&&log.DebugFormat(&PathAndQuery&+&\\n&+&rawbody&:&{0}&,&text); &&
&&&&byte[]&digest&=&puteHash(System.Text.Encoding.UTF8.GetBytes(text)); &&
&&&&string&computed&=&Qiniu.Util.Base64URLSafe.Encode(digest); &&
&&&&log.DebugFormat(&Computed&hash&after&base64&:&{0}&,&computed); &&
&&&&IEnumerable&string&& &&
&&&&if&(filterContext.Request.Headers.TryGetValues(&Authorization&,&out&auths)&&&&auths.Count()&==&1) &&
&&&&&&&&string&auth&=&auths.First(); &&
&&&&&&&&log.DebugFormat(&Authorization&in&header&:&{0}&,&auth); &&
&&&&&&&&if&(auth.StartsWith(&QBox&&)) &&
&&&&&&&&{ &&
&&&&&&&&&&&&var&arr&=&auth.Substring(5).Split(':'); &
&&&&&&&&&&&&if&(arr.Length&==&2) &
&&&&&&&&&&&&{ &
&&&&&&&&&&&&&&&&if&(arr[1]&!=&computed) &
&&&&&&&&&&&&&&&&{ &
&&&&&&&&&&&&&&&&&&&&log.ErrorFormat(&Authorization&failed.&Since&auth&from&header&{0}&not&equals&computed&{1}&,&arr[1],&computed); &
&&&&&&&&&&&&&&&&} &
&&&&&&&&&&&&&&&&else &
&&&&&&&&&&&&&&&&{ &
&&&&&&&&&&&&&&&&&&&&log.Debug(&Authorization&success.&); &
&&&&&&&&&&&&&&&&&&&&//only&pass&can&be&return &
&&&&&&&&&&&&&&&&&&&& &
&&&&&&&&&&&&&&&&} &
&&&&&&&&&&&&} &
&&&&&&&&&&&&else &
&&&&&&&&&&&&{ &
&&&&&&&&&&&&&&&&log.Error(&Callback&Authorization's&format&is&invalid,&can&not&find&two&part&after&split&by&':'.&); &&
&&&&&&&&&&&&} &&
&&&&&&&&} &&
&&&&&&&&else&&
&&&&&&&&{ &&
&&&&&&&&&&&&log.Error(&Callback&Authorization's&format&is&invalid,&missing&leading&'QBox&'.&); &&
&&&&&&&&} &&
&&&&else&&
&&&&&&&&log.Error(&The&request&from&qiniu&callback&is&missing&'Authorization'&); &&
&&&&filterContext.Response&=&filterContext.Request.CreateResponse(System.Net.HttpStatusCode.Forbidden); &&
如下几个注意点:
七牛云存储使用中一些常见问题的解决经验
本文由 IT学习网 整理,转载请注明“转自IT学习网”,并附上链接。
原文链接:
标签分类:
上一篇:上一篇:
下一篇: 下一篇:1593人阅读
七牛云存储(3)
七牛云存储刷新缓存
更新时间:
有二种情况:
一、使用七牛云存储
没有使用镜像加速,刷新cdn缓存
旧版的portal:
选择空间=》空间设置=》高级设置=》刷新缓存
2、新版刷新:
选择任意cdn加速域名,点击刷新缓存,刷新内内容中,只要是该账户下的域名都可以刷新
3、API 接口文档
使用镜像加速,源站更新后,刷新cdn缓存
使用镜像加速后,业务服务器端更新文件,刷新cdn节点缓存,需先要更新七牛存储上的文件,然后在刷新几点资源,需要分2步操作:
1. 业务服务器资源更新到七牛
A 更新镜像资源接口 [这里写链接内容](http://developer.qiniu.com/docs/v6/api/reference/rs/prefetch.html)
B 使用qshell工具,prefetch 命令 更新资源 [这里写链接内容](http://developer.qiniu.com/docs/v6/tools/qshell.html)
C 删除七牛空间资源后,等待cdn节点刷新后重新拉取
2. 刷新cdn节点缓存
同 "没有使用镜像加速,刷新cdn缓存" 刷新方式相同
二、只使用fusion cdn加速,没有使用七牛存储
直接使用七牛cdn,没有走存储
同 "没有使用镜像加速,刷新cdn缓存" 刷新方式相同
镜像加速示意图
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:12692次
排名:千里之外
原创:15篇
(3)(1)(1)(6)(7)}

我要回帖

更多关于 七牛更新缓存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信