记下载oss图片接口(附带删除)
项目某个功能用到下载oss文件并打包
结果网查全都是oss文件上传
自己写了个下载oss保存到本地 增添一份资源
下载图片
public static function downLoad($url,$downPath){ $accessKeyId = config('app.oss.ossKeyId'); $accessKeySecret = config('app.oss.ossKeySecret'); // Endpoint以杭州为例,其它Region请按实际情况填写。 $endpoint = config('app.oss.endpoint'); // 存储空间名称 $bucket= config('app.oss.bucket'); // <yourObjectName>表示您下载OSS文件时需要指定的文件路径,例如abc/123.jpg。 $str=str_replace(config('app.oss.host').'/','',$url); // 替换掉oss域名 示例: // $object = 'goods_pic/2020-10-26/e29a18944c0e4cdc79e93350232fd75d'; $object = $str; // <yourLocalFile>本地指定的文件路径加文件名包括后缀组成,例如/users/local/myfile.txt。 $localfile = $downPath; $options = array( OssClient::OSS_FILE_DOWNLOAD => $localfile ); // 使用try catch捕获异常,如果捕获到异常,则说明下载失败;如果没有捕获到异常,则说明下载成功。 try{ $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $aa = $ossClient->getObject($bucket, $object, $options); return true; // var_dump($aa); } catch(OssException $e) { printf(__FUNCTION__ . ": FAILED\n"); printf($e->getMessage() . "\n"); return; } }
附带删除oss文件
//删除 public static function delimg($url){ $accessKeyId = config('app.oss.ossKeyId'); $accessKeySecret = config('app.oss.ossKeySecret'); // Endpoint以杭州为例,其它Region请按实际情况填写。 $endpoint = config('app.oss.endpoint'); // 存储空间名称 $bucket= config('app.oss.bucket'); // 文件名称 // <yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt try{ $host = config('app.oss.host').'/'; $object = str_replace($host,'',$url); $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $ossClient->deleteObject($bucket, $object); } catch(OssException $e) { return false; } return true; }
附带上传
public static function sendimg($imgurl,$codeName,$fileName,$isdel=false){ $date = date('Y-m-d'); $accessKeyId = config('app.oss.ossKeyId'); $accessKeySecret = config('app.oss.ossKeySecret'); // Endpoint以杭州为例,其它Region请按实际情况填写。 $endpoint = config('app.oss.endpoint'); // 存储空间名称 $bucket= config('app.oss.bucket'); // 文件名称 $object = "$fileName/$date/$codeName"; // <yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt try{ $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint); $options = array( // 可以参看https://help.aliyun.com/document_detail/31859.html?spm=a2c4g.11186623.2.10.481e2b72ggLS4F#concept-lkf-swy-5db OssClient::OSS_CONTENT_TYPE => 'image/jpg/zip', // 简单的举例使用 要根据实际的图片类型 ); $aa = $ossClient->uploadFile($bucket, $object, $imgurl,$options); if($isdel){ unlink($imgurl); } } catch(OssException $e) { return false; } $img_src = config('app.oss.host')."/".$object; return $img_src; }