记下载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;
    }

 

posted @ 2020-10-29 13:51  Liiu  阅读(393)  评论(0编辑  收藏  举报