zoukankan      html  css  js  c++  java
  • 记下载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
    ");
                printf($e->getMessage() . "
    ");
                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;
        }
  • 相关阅读:
    CentOS7 linux下yum安装redis以及使用
    nssm 在windows上部署服务
    netcore 2.2 封装 AutoMapper
    git pull/push免密输入
    缓存常见问题
    批量维护关系数据
    测试跨域html
    ODBC配置
    spring boot监控之prometheus配置
    REST Client
  • 原文地址:https://www.cnblogs.com/liiu/p/13896323.html
Copyright © 2011-2022 走看看