阿里云sdk Github地址:
? ??????https://github.com/aliyun/aliyun-oss-php-sdk/blob/master/README-CN.md
自己安裝:composer require aliyuncs/oss-sdk-php
其他框架自行百度安裝,我是Yii2高級(jí)版。
步驟:
1、將Bucket的權(quán)限設(shè)置為私有讀;在阿里云后臺(tái)操作。
2、 根據(jù)期望的超時(shí)時(shí)間(簽名URL失效的時(shí)間)生成簽名。
下面直接上代碼,key和secret自己換:
/**
* 阿里云防盜鏈地址
* @param $fileName? ? ? ? 這個(gè)是你在阿里云后臺(tái)上傳文件后,他給你的文件名,例如xxx/a.mp4,或者直接在bucket下面,就直接寫a.mp4
* @return string
*/
public static function getFdl($fileName)
{
? ? $accessKeyId = "aaaaaaaaaa";
? ? $accessKeySecret = "bbbbbbbbbbbbb";
? ? // Endpoint以北京為例,其它Region請(qǐng)按實(shí)際情況填寫。
? ? $endpoint = "oss-cn-beijing.aliyuncs.com";
? ? $bucket = "bucket";
? ? try {
? ? ? ? $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
//這個(gè)是你在阿里云后臺(tái)上傳文件后,他給你的文件名,例如xxx/a.mp4,或者直接在bucket下面,就直接寫a.mp4
? ? ? ? $object = $fileName;#需要簽名的Object? ? ?
? ? ? ? $timeout = 3600 * 3;#期望鏈接失效的時(shí)間,這里表示從代碼運(yùn)行到這一行開始的當(dāng)前時(shí)間往后300秒
? ? ? ? $signedUrl = $ossClient->signUrl($bucket, $object, $timeout);?
? ? ? ? return $signedUrl;
? ? } catch (OssException $e) {
? ? ? ? return $e->getMessage();
? ? }
}