php教程

七牛云oss时间戳图片防盗链api接口

精准像素 2021-05-20 人阅读

七牛云oss时间戳图片防盗链API接口,生成签名的 url 的时候,也要将新生成的 url 保存到 redis 中,防止每次访问都生成新的签名,即浪费服务器资源,又会增加 CDN 流量。

签名代码:

// Sign 每一个图片生成 2 分钟有效期的签名
//
// imgPath 是图片路径,不是完整链接。
func Sign(imgPath string) (string, error) {
var (
// 七牛云设置的签名的 Key
key = "xxxxxxxxxx"
// 过期时间
expire = time.Now().Unix() + 60*2
)
rawStr := fmt.Sprintf("%s/%s%x", key, imgPath, expire)
hash := md5.New()
hash.Write([]byte(rawStr))
sign := fmt.Sprintf("%x", hash.Sum(nil))
var newPath string
newPath = fmt.Sprintf("%s?sign=%s&t=%x", imgPath, sign, expire)
// 生成签名后放进 redis 中,过期时间比签名过期时间短 1 秒,下次再访问时先从 redis 中查找签名过的链接
err := redis.CacheSignedURL(imgPath, newPath, 60*2-1)
if err != nil {
return "", err
}
return newPath, nil
}

如果下次访问时没有从 redis 中获取到签名的 url ,再生成新的签名,伪码:

func GetSignedURL(url string) string {
cache := redis.GetCacheSignedURL(url)
if cache != "" {
return cache
}
return Sign(url)
}

这样的好处就是在有效期内服务端返回的图片链接不会改变,浏览器就能够缓存有效期内的图片。

当过有效期时,服务端返回新的签名链接,浏览器就会向七牛 CDN 发出新的请求,进行新一轮的有效期内缓存。

前端从响应 json 中拿到的签名链接渲染页面。

有效期内会在浏览器中缓存:

七牛云oss时间戳图片防盗链api接口
七牛云时间戳防盗链截图

过了有效期就返回 403:

七牛云oss时间戳图片防盗链api接口
七牛云时间戳防盗链截图
下一篇:返回列表
相关推荐
  • API接口
  • api教程
  • QQ互联API申请教程(图文)

    1、登录QQ互联在浏览器上打开网址:http://connect.qq.com/。点击右上角【登录】按钮,使用QQ账号登录。2、管理中心点击【管理中心】进入应用管理页面。(图中位置1)完善开发者资料,如果手册登录需要完善开发者资料。点击【创建应用】,开始创建应用。(图中位...

    经验分享 751 2年前
  • 苹果CMS开放API相关服务接口

    开放式API数据接口-声明本接口仅供学习研究使用,请勿用于生产环境和非法渠道;不能保证稳定性和正确性;请牢记苹果cms官方域名: www.maccms.com(暂时关闭) www.maccms.net; 网路出现多个盗版苹果v10的程序,改头换面加入后门,请误下载使用没有诚信的盗版程序...

    苹果cms教程 424 1年前
  • 织梦熊掌号api自动提交代码

    复制一下PHP代码,新建一个PHP文件,放在网站根目录,每天更新完后运行一次就行了!只适用于自适应站点。<?php require_once ("include/common.inc.php"); require_once "include/arc.partview.class.php";require_once(&#39;include/charset.func.php&#3...

    织梦cms教程 125 1年前
  • QQ互联API申请教程(图文)

    1、登录QQ互联在浏览器上打开网址:http://connect.qq.com/。点击右上角【登录】按钮,使用QQ账号登录。2、管理中心点击【管理中心】进入应用管理页面。(图中位置1)完善开发者资料,如果手册登录需要完善开发者资料。点击【创建应用】,开始创建应用。(图中位...

    经验分享 751 2年前
  • 苹果CMS开放API相关服务接口

    开放式API数据接口-声明本接口仅供学习研究使用,请勿用于生产环境和非法渠道;不能保证稳定性和正确性;请牢记苹果cms官方域名: www.maccms.com(暂时关闭) www.maccms.net; 网路出现多个盗版苹果v10的程序,改头换面加入后门,请误下载使用没有诚信的盗版程序...

    苹果cms教程 424 1年前
  • php站长站备案查询API代码

    <?phperror_reporting(0);$u = $_GET[&#39;url&#39;];var_dump();if(!isset($u)){ echo &#39;?url=qq.com&#39;; die;}$a = file_get_contents(&#39;http://icp.chinaz.com/info?q=&#39;.$u);$p = &#39;/<td align=\"left\&qu...

    php教程 21 9个月前