最近的模板兔为客户提供OSS认证下载(OSS下载加密)功能。 即阿里云OSS的bucket是私有的。 为了防止下载链接被盗,需要使用erphpdown插件进行认证下载。 这样即使别人知道你的文件在OSS中的下载地址(例如:https://mobantu.oss-cn-guangzhou.aliyuncs.com/test/erphpdown.zip),也无法下载。
当然下载地址还是填写OSS的下载地址,但是erphpdown跳转处理下载逻辑时会自动进行认证并添加参数(例如:https://mobantu.oss-cn-guangzhou. aliyuncs.com/test/erphpdown.zip?OSSAccessKeyId=xxxxx&Expires=1644376819&Signature=ooooo)。
代码示例如下:
require ERPHPDOWN_PATH.'/aliyun-oss-php-sdk/autoload.php';
use OSSOssClient;
use OSSCoreOssException;
$Bucket = "";
$EndPoint = "oss-cn-guangzhou.aliyuncs.com";
$keyname = explode('.aliyuncs.com/', $file)[1];
$region = "cn-guangzhou";
$KeyId = "";
$KeySecret = "";
try {
$ossClient = new OssClient($KeyId, $KeySecret, $EndPoint);
$presignedUrl = $ossClient->generatePresignedUrl($Bucket, $keyname, strtotime("+5 minutes"));
$presignedUrl = str_replace("http://", "https://", $presignedUrl);
wp_redirect($presignedUrl);
exit;
} catch (OssException $e) {
echo $e->getMessage();
exit;
}