详情页

七牛云对象存储开启私人空间后,又开启了时间戳防盗链,如何用PHP获取下载链接?

时间:2023年12月16日

编辑:佚名

七牛云时间戳防盗链就是这玩意,很好用的!

七牛云对象存储开启私人空间后,又开启了时间戳防盗链,如何获取下载链接?
当七牛云对象存储的私人空间开启了时间戳鉴定后,获取下载链接需要在生成临时下载链接时加入时间戳参数。以下是具体步骤:
获取私人空间的下载域名
在七牛云后台中,选择对应的存储空间,进入“域名设置”页,找到私有空间的下载域名(如:http(s)://<domain>),记下该地址备用。
生成下载链接
使用七牛云 PHP SDK 中的 Auth 类,根据下载链接的过期时间、文件名和时间戳等参数,生成带时间戳的临时下载链接。示例代码如下:
<?php
 require 'vendor/autoload.php';
use Qiniu\Auth;
use \Qiniu\Cdn\CdnManager;
$accessKey = '';
$secretKey = '';
// 构建Auth对象
$auth = new Auth($accessKey, $secretKey);
//创建时间戳防盗链
//时间戳防盗链密钥,后台获取
$encryptKey = '';
//带访问协议的域名
$url2 = 'http://***.78moban.com/test/370009-2.png';
//有效期时间(单位秒)
$signedUrl1 = $auth->privateDownloadUrl($url2);
$durationInSeconds = 60;
$signedUrl = CdnManager::createTimestampAntiLeechUrl($signedUrl1, $encryptKey, $durationInSeconds);
print($signedUrl);
这段代码是使用七牛云 PHP SDK 实现时间戳防盗链的功能。下面是代码的解析:
首先,通过 require 'vendor/autoload.php'; 引入所需的依赖文件。
使用命名空间 use Qiniu\Auth; 和 use \Qiniu\Cdn\CdnManager; 导入 Auth 类和 CdnManager 类。
定义了访问密钥的 Access Key 和 Secret Key,需要将其替换为真实的值。
创建 Auth 对象,并传入 Access Key 和 Secret Key 来进行身份验证。
定义了时间戳防盗链的密钥 encryptKey,需要从七牛云后台获取并替换为真实的值。
定义了带访问协议的域名 url2,需要将其替换为真实的值。该域名是私有空间文件的访问地址。
通过调用 $auth->privateDownloadUrl($url2) 方法生成私有空间文件的下载链接 signedUrl1,该链接是未经时间戳防盗链处理的。
定义了有效期时间 durationInSeconds,单位为秒,表示时间戳防盗链链接的有效期限。
调用 CdnManager::createTimestampAntiLeechUrl($signedUrl1, $encryptKey, $durationInSeconds) 方法,
将私有空间文件的下载链接 signedUrl1、时间戳防盗链密钥 encryptKey 和有效期时间 durationInSeconds 作为参数传入,生成具有时间戳防盗链功能的下载链接 signedUrl。
使用 print($signedUrl); 打印输出生成的时间戳防盗链下载链接。
需要注意的是,该段代码中的 Access Key、Secret Key、encryptKey 和 url2 需要替换为真实的值。如果缺少依赖库,请确保已安装相关依赖并引入正确的文件。
相关文章
猜你需要