就是这玩意,很好用的!
七牛云对象存储开启私人空间后,又开启了时间戳防盗链,如何获取下载链接?
当七牛云对象存储的私人空间开启了时间戳鉴定后,获取下载链接需要在生成临时下载链接时加入时间戳参数。以下是具体步骤:
- 获取私人空间的下载域名
在七牛云后台中,选择对应的存储空间,进入“域名设置”页,找到私有空间的下载域名(如: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://***.4s5.cn/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 需要替换为真实的值。如果缺少依赖库,请确保已安装相关依赖并引入正确的文件。
暂无评论内容