一、安裝
1.首先檢測自己的php環境
OSS PHP SDK只能在PHP 5.3以上版本中使用。
2.sdk的安裝
可以通過git下載文件包,進行文件引入使用。也可以通過composer進行安裝(推薦使用composer安裝)。
在項目的根目錄運行composer require aliyuncs/oss-sdk-php
3.項目配置
以下演示以yii2框架爲主
- 首先進行相應的配置
2.應用實例化
需要傳入的參數說明
$object 文件名
$filepath 文件物理路徑
實例化文件上傳
public function upload($object, $filepath)
{
$accessKeyId = Yii::$app->params['oss']['accessKeyId']; //獲取阿里雲oss的accessKeyId
$accessKeySecret = Yii::$app->params['oss']['accessKeySecret']; //獲取阿里雲oss的accessKeySecret
$endpoint = Yii::$app->params['oss']['endPoint']; //獲取阿里雲oss的endPoint
$bucket = Yii::$app->params['oss']['bucket'];
$oss = new OssClient($accessKeyId, $accessKeySecret, $endpoint); //實例化OssClient對象
$res = $oss->uploadFile($bucket,$object,$filepath);
$url = $res['info']['url'];
return $url;
}
實例化文件刪除
public function delete($object)
{
$res = false;
$bucket = Yii::$app->params['oss']['bucket']; //獲取阿里雲oss的bucket
if (self::$oss->deleteObject($bucket, $object)){ //調用deleteObject方法把服務器文件上傳到阿里雲oss
$res = true;
}
return $res;
}
實例化防盜鏈的url地址
//獲取防盜鏈的url地址
public function geturl($object){
$accessKeyId = Yii::$app->params['oss']['accessKeyId']; //獲取阿里雲oss的accessKeyId
$accessKeySecret = Yii::$app->params['oss']['accessKeySecret']; //獲取阿里雲oss的accessKeySecret
$endpoint = Yii::$app->params['oss']['endPoint']; //獲取阿里雲oss的endPoint
$bucket = Yii::$app->params['oss']['bucket'];
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$timeout = 3600;
//$options = array(OssClient::OSS_PROCESS => "image/resize,m_lfit,h_100,w_100" );
$signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "GET");
return $signedUrl;
}
實例化防盜鏈的縮略圖
public function getminurl($object){
$accessKeyId = Yii::$app->params['oss']['accessKeyId']; //獲取阿里雲oss的accessKeyId
$accessKeySecret = Yii::$app->params['oss']['accessKeySecret']; //獲取阿里雲oss的accessKeySecret
$endpoint = Yii::$app->params['oss']['endPoint']; //獲取阿里雲oss的endPoint
$bucket = Yii::$app->params['oss']['bucket'];
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$timeout = 3600;
$options = array(OssClient::OSS_PROCESS => "image/resize,m_lfit,h_100,w_100" );
$signedUrl = $ossClient->signUrl($bucket, $object, $timeout, "GET",$options);
return $signedUrl;
}
3.項目中使用
在用到的地方引入該文件,然後進行方法的調用即可。
public function upload()
{
if ($this->validate()) {
$request = new Request();
$post = $request->bodyParams;
$urls = [];
foreach ($this->imageFiles as $k=> $file) {
$filename = time().$k;
$file->saveAs('D:\phpstudy_pro\WWW\ubossAPIs\web'.$k . $filename . '.' . $file->extension);
$filepath = "D:\phpstudy_pro\WWW\ubossAPIs\web" .$k. $filename. '.' . $file->extension;
$list[] = $filepath;
}
foreach ($list as $k =>$v){
$filepath = $v;
$OOS = new Aliyunoss;
$object =time().$k;
$res = $OOS->upload($object,$filepath);
if($res){
unlink($v);
}
$urls[] = $res;
}
$data = implode(',',$urls);
return $data;
} else {
return false;
}
}