thinkphp项目接入阿里云OSS
1、首先安装 sdk:
composer require aliyuncs/oss-sdk-php
安装好后,在控制器中创建上传方法:
protected function uploadImages(){
$format = strrchr($filesPath, '.');//截取文件后缀名如 (.jpg) $filesPath上传到本地服务器的地址
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
$accessKeyId = config('app.aliyun.accessId');
$accessKeySecret = config('app.aliyun.accessSecret');
// Endpoint以杭州为例,其它Region请按实际情况填写。
$endpoint = config('app.aliyun.endpoint');
// 设置存储空间名称。
$bucket= config('app.aliyun.bucket');
// 设置文件名称。
$path = '2023/upload/'; //oss中的目录地址 bucket下面会有 2023/upload/2023-2-1/1253251sdfs.jpg
$object = $path.date('Ymd', time()).DIRECTORY_SEPARATOR.sha1(date('YmdHis', time()) . uniqid()) . $format;
//自己本地服务器中的图片或视频地址
$filePath = $filesPath;
try{
$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
$result = $ossClient->uploadFile($bucket, $object, $filePath);
if(!$result){
return ['code'=>400,'msg'=>'上传失败'];
}else{
unlink($filesPath); //删除本地文件
$arrtxt = explode('-',$bucket);
$item = '//'.$arrtxt[1].'-oss.XXXXX.com/'.$object;
return ['code'=>200,'msg'=>$item];
//return ['code'=>200,'msg'=>$result['info']['url']];
}
} catch(OssException $e) {
// printf(__FUNCTION__ . ": FAILED\n");
// printf($e->getMessage() . "\n");
return ['code'=>400,'msg'=>$e->getMessage()];
}
}