一、安装
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;
}
}