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

20231103164134244-图片

就是这玩意,很好用的!

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

当七牛云对象存储的私人空间开启了时间戳鉴定后,获取下载链接需要在生成临时下载链接时加入时间戳参数。以下是具体步骤:

  1. 获取私人空间的下载域名

在七牛云后台中,选择对应的存储空间,进入“域名设置”页,找到私有空间的下载域名(如:http(s)://<domain>),记下该地址备用。

  1. 生成下载链接

使用七牛云 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 实现时间戳防盗链的功能。下面是代码的解析:

  1. 首先,通过 require 'vendor/autoload.php'; 引入所需的依赖文件。

  2. 使用命名空间 use Qiniu\Auth;use \Qiniu\Cdn\CdnManager; 导入 Auth 类和 CdnManager 类。

  3. 定义了访问密钥的 Access Key 和 Secret Key,需要将其替换为真实的值。

  4. 创建 Auth 对象,并传入 Access Key 和 Secret Key 来进行身份验证。

  5. 定义了时间戳防盗链的密钥 encryptKey,需要从七牛云后台获取并替换为真实的值。

  6. 定义了带访问协议的域名 url2,需要将其替换为真实的值。该域名是私有空间文件的访问地址。

  7. 通过调用 $auth->privateDownloadUrl($url2) 方法生成私有空间文件的下载链接 signedUrl1,该链接是未经时间戳防盗链处理的。

  8. 定义了有效期时间 durationInSeconds,单位为秒,表示时间戳防盗链链接的有效期限。

  9. 调用 CdnManager::createTimestampAntiLeechUrl($signedUrl1, $encryptKey, $durationInSeconds) 方法,将私有空间文件的下载链接 signedUrl1、时间戳防盗链密钥 encryptKey 和有效期时间 durationInSeconds 作为参数传入,生成具有时间戳防盗链功能的下载链接 signedUrl

  10. 使用 print($signedUrl); 打印输出生成的时间戳防盗链下载链接。

需要注意的是,该段代码中的 Access Key、Secret Key、encryptKey 和 url2 需要替换为真实的值。如果缺少依赖库,请确保已安装相关依赖并引入正确的文件。

© 版权声明
THE END
喜欢就支持一下吧
点赞12
相关推荐
评论 抢沙发

请登录后发表评论

    暂无评论内容