欢迎光临 - 我的站长站,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

php教程

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

php教程 我的站长站 2021-05-20 共147人阅读

七牛云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
2022-06-15 122

API是开发中必备知识点,合理的应用API可以大大节省开发成本,为您整理收集了包含API接口的信息,包含API接口,API代码,API源码,助你更快的学习使用API技术....

相关推荐
  • API接口
  • api教程
  • php时间
  • php代码
  • 时间戳
  • 支付宝企业账户转账个人账户php接口代码

    前言支付宝企业账户转账个人账户php接口代码,该接口主要用于平台对用户奖励的发放,场景也很简单就是我在你平台上有余额,我提现,平台给钱。只不过项目中是用的官方的SDK调用的,仔细看了下那个SDK目录,把很多无用的接口(目前自己用不上)也包含在里面,作为强...

    php教程 180 2年前
  • QQ互联API申请教程(图文)

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

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

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

    苹果cms教程 994 5年前
  • 织梦熊掌号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教程 220 5年前
  • 2020年最新HTML+API版防红网站模板
    2020年最新HTML+API版防红网站模板

    2020年最新HTML+API版防红网站模板,HTML+JS+API框架,打开即可使用,不需要任何环境。支持多种防红方式,多种短域名后缀。

    html模板 466 4年前
  • QQ互联API申请教程(图文)

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

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

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

    苹果cms教程 994 5年前
  • 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教程 143 4年前
  • PHP链接生成二维码API接口源码
    PHP链接生成二维码API接口源码

    网站链接转换二维码有多方法,最觉得是用JS生成,简单易懂。我的站长站截图分享另一种PHP生成网址链接二维码方法, 跟前几天的QQ头像获取一个道理 对接别人的接口 也就是中转别人的接口 化为自己的接...

    php教程 201 4年前
  • PHP获取城市天气API接口源码

    PHP获取城市天气API接口源码,接口调用的是微鲤的接口,2020年9月1日 10:11:07测试接口还可以正常使用。API查询接口代码<?php function tian(){ $city=$_GET[&#39;city&#39;]; $url="https://wthrcdn.etouch.cn/weather_mini?city=".$city; ...

    php教程 140 4年前
  • PHP显示昨天今天后天时间日期方法

    首先一天的时间戳用PHP写就是:<?=date(&#39;Y-m-d H:i:s&#39;,($bqr[newstime]+86400))?>昨天今天后天时间的方法为:<?phpecho "今天:".date("Y-m-d")."<br>"; echo "昨天:".date("Y-m-d",strtotime("-1 day")),...

    php教程 107 3年前
  • 七牛云oss时间戳图片防盗链api接口

    七牛云oss时间戳图片防盗链api接口,生成签名的 url 的时候,也要将新生成的 url 保存到 redis 中,防止每次访问都生成新的签名,即浪费服务器资源,又会增加 CDN 流量。签名代码:// Sign 每一个图片生成 2 分钟有效期的签名//// imgPath 是图片路径,不是完整链...

    php教程 147 3年前
  • PHP利用date函数读取系统时间

    PHP利用date函数读取系统时间,很简单,下面是代码echo date('Y年m月d日 H:i:s');Y年m月d日H时i分s秒

    php教程 120 4年前
  • php获取年月周时间戳代码

    php获取时区date_default_timezone_set("Asia/Shanghai"); date_default_timezone_set(&#39;PRC&#39;);//这两种方法效果相同时间戳转日期,可以用date(‘Y-m-s h:i:s’, 具体时间戳来实现)日期转换时间戳,用strtotime("date()").php获取时间戳//获取今...

    php教程 19 2年前
  • PHP计算当前时间距离指定时间戳天数

    PHP计算当前时间距离指定时间戳天数,可以使用time()函数获取当前时间的时间戳,然后将它与你想要计算的过去或未来的时间戳进行比较。为了得到相差的天数,你需要先用两个时间戳相减得到秒数差,然后再除以一天的总秒数(通常是86400秒)并向下取整。示例:<?php/...

    php教程 10 2个月前
  • 支付宝企业账户转账个人账户php接口代码

    前言支付宝企业账户转账个人账户php接口代码,该接口主要用于平台对用户奖励的发放,场景也很简单就是我在你平台上有余额,我提现,平台给钱。只不过项目中是用的官方的SDK调用的,仔细看了下那个SDK目录,把很多无用的接口(目前自己用不上)也包含在里面,作为强...

    php教程 180 2年前
  • php判断目录文件是否存在

    一段简单的php判断目录文件是否存在代码,收藏记录一下,以后肯定用得到的。<?php$filename = &#39;../../e/install/&#39;; if (file_exists($filename)) { echo "<h3><div align=&#39;center&#39;><font color=&#39;#FF0000&#39;>存在安全风险!请将 ...

    php教程 127 2年前
  • curl函数获取API接口数据方法

    PHP利用curl函数,获取API接口数据方法示例代码,自用收藏<?php $weather = curl_init(); curl_setopt($weather,CURLOPT_URL,"https://api.pc2801.com/cqssc/".time()); curl_setopt($weather, CURLOPT_SSL_VERIFYPEER, false); //如果...

    php教程 103 3年前
  • 158网盘直连解析代码

    API代码<?php/*** @package 158Pan* @author Andy* @version 1.2.0* @link https://lsland.cn*/// 指定允许其他域名访问 header(&#39;Access-Control-Allow-Origin:*&#39;);header(&#39;content-type:application/json;charset:utf-8&#39;);functi...

    php教程 145 3年前
  • PHP获取QQ用户昵称+头像API接口代码

    如果要获得QQ用户的头像和昵称,需要在腾讯开放平台申请API接入才可以,但是这个不需要!只需要输入用户的正确的QQ号即可返回用户的头像和昵称。API接口代码<?php // 通过QQ号即可获取用户信息 // 获取QQ头像接口// http://q1.qlogo.cn/g?b=qq&nk=QQ号&s=...

    php教程 257 3年前
  • Python时间戳互转

    查询时间:可查询当前时间与时间戳时间戳转时间:在前面输入框中输入时间戳点击按钮可转成时间时间转时间戳:在前面输入框中输入时间点击按钮可转成时间戳,时间格式如果不知道可复制查询时间中的时间格式import timeimport osimport tkinter as tkimport t...

    python教程 13 1年前
  • 七牛云oss时间戳图片防盗链api接口

    七牛云oss时间戳图片防盗链api接口,生成签名的 url 的时候,也要将新生成的 url 保存到 redis 中,防止每次访问都生成新的签名,即浪费服务器资源,又会增加 CDN 流量。签名代码:// Sign 每一个图片生成 2 分钟有效期的签名//// imgPath 是图片路径,不是完整链...

    php教程 147 3年前
  • php获取年月周时间戳代码

    php获取时区date_default_timezone_set("Asia/Shanghai"); date_default_timezone_set(&#39;PRC&#39;);//这两种方法效果相同时间戳转日期,可以用date(‘Y-m-s h:i:s’, 具体时间戳来实现)日期转换时间戳,用strtotime("date()").php获取时间戳//获取今...

    php教程 19 2年前
  • php获取前后日月年等的时间戳方法

    date()函数date(&#39;Y-m-d&#39;,timestamp); //输出年-月-日date(&#39;Y-m-d H:i:s&#39;,timestamp); //输出年-月-日 时:分:秒天时间戳今天:date("Y-m-d",strtotime("today")); //strtotime(&#39;today&#39;)输出今天的开始时间戳或date("Y-m-d",tim...

    php教程 8 2个月前