| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 | 
							- <?php
 
- namespace App\Services;
 
- use JohnLui\AliyunOSS;
 
- use Exception;
 
- use DateTime;
 
- class OSS {
 
-     /* 城市名称:
 
-      *
 
-      *  经典网络下可选:杭州、上海、青岛、北京、张家口、深圳、香港、硅谷、弗吉尼亚、新加坡、悉尼、日本、法兰克福、迪拜
 
-      *  VPC 网络下可选:杭州、上海、青岛、北京、张家口、深圳、硅谷、弗吉尼亚、新加坡、悉尼、日本、法兰克福、迪拜
 
-      */
 
-     private $city = '北京';
 
-     // 经典网络 or VPC
 
-     private $networkType = '经典网络';
 
-     private $AccessKeyId;
 
-     private $AccessKeySecret;
 
-     private $ossClient;
 
-     /**
 
-      * 私有初始化 API,非 API,不用关注
 
-      * @param boolean 是否使用内网
 
-      */
 
-     public function __construct($isInternal = false)
 
-     {
 
-         if ($this->networkType == 'VPC' && !$isInternal) {
 
-             throw new Exception("VPC 网络下不提供外网上传、下载等功能");
 
-         }
 
-         $this->ossClient = AliyunOSS::boot(
 
-             $this->city,
 
-             $this->networkType,
 
-             $isInternal,
 
-             $this->AccessKeyId = config('alioss.AccessKeyId'),
 
-             $this->AccessKeySecret = config('alioss.AccessKeySecret')
 
-         );
 
-     }
 
-     /**
 
-      * 使用外网上传文件
 
-      * @param  string bucket名称
 
-      * @param  string 上传之后的 OSS object 名称
 
-      * @param  string 上传文件路径
 
-      * @return boolean 上传是否成功
 
-      */
 
-     public static function publicUpload($bucketName, $ossKey, $filePath, $options = [])
 
-     {
 
-         $oss = new OSS();
 
-         $oss->ossClient->setBucket($bucketName);
 
-         return $oss->ossClient->uploadFile($ossKey, $filePath, $options);
 
-     }
 
-     /**
 
-      * 使用阿里云内网上传文件
 
-      * @param  string bucket名称
 
-      * @param  string 上传之后的 OSS object 名称
 
-      * @param  string 上传文件路径
 
-      * @return boolean 上传是否成功
 
-      */
 
-     public static function privateUpload($bucketName, $ossKey, $filePath, $options = [])
 
-     {
 
-         $oss = new OSS(true);
 
-         $oss->ossClient->setBucket($bucketName);
 
-         return $oss->ossClient->uploadFile($ossKey, $filePath, $options);
 
-     }
 
-     /**
 
-      * 使用外网直接上传变量内容
 
-      * @param  string bucket名称
 
-      * @param  string 上传之后的 OSS object 名称
 
-      * @param  string 上传的变量
 
-      * @return boolean 上传是否成功
 
-      */
 
-     public static function publicUploadContent($bucketName, $ossKey, $content, $options = [])
 
-     {
 
-         $oss = new OSS();
 
-         $oss->ossClient->setBucket($bucketName);
 
-         return $oss->ossClient->uploadContent($ossKey, $content, $options);
 
-     }
 
-     /**
 
-      * 使用阿里云内网直接上传变量内容
 
-      * @param  string bucket名称
 
-      * @param  string 上传之后的 OSS object 名称
 
-      * @param  string 上传的变量
 
-      * @return boolean 上传是否成功
 
-      */
 
-     public static function privateUploadContent($bucketName, $ossKey, $content, $options = [])
 
-     {
 
-         $oss = new OSS(true);
 
-         $oss->ossClient->setBucket($bucketName);
 
-         return $oss->ossClient->uploadContent($ossKey, $content, $options);
 
-     }
 
-     /**
 
-      * 使用外网删除文件
 
-      * @param  string bucket名称
 
-      * @param  string 目标 OSS object 名称
 
-      * @return boolean 删除是否成功
 
-      */
 
-     public static function publicDeleteObject($bucketName, $ossKey)
 
-     {
 
-         $oss = new OSS();
 
-         $oss->ossClient->setBucket($bucketName);
 
-         return $oss->ossClient->deleteObject($bucketName, $ossKey);
 
-     }
 
-     /**
 
-      * 使用阿里云内网删除文件
 
-      * @param  string bucket名称
 
-      * @param  string 目标 OSS object 名称
 
-      * @return boolean 删除是否成功
 
-      */
 
-     public static function privateDeleteObject($bucketName, $ossKey)
 
-     {
 
-         $oss = new OSS(true);
 
-         $oss->ossClient->setBucket($bucketName);
 
-         return $oss->ossClient->deleteObject($bucketName, $ossKey);
 
-     }
 
-     /**
 
-      * -------------------------------------------------
 
-      *
 
-      *
 
-      *  下面不再分公网内网出 API,也不注释了,大家自行体会吧。。。
 
-      *
 
-      *
 
-      * -------------------------------------------------
 
-      */
 
-     public function copyObject($sourceBuckt, $sourceKey, $destBucket, $destKey)
 
-     {
 
-         $oss = new OSS();
 
-         return $oss->ossClient->copyObject($sourceBuckt, $sourceKey, $destBucket, $destKey);
 
-     }
 
-     public function moveObject($sourceBuckt, $sourceKey, $destBucket, $destKey)
 
-     {
 
-         $oss = new OSS();
 
-         return $oss->ossClient->moveObject($sourceBuckt, $sourceKey, $destBucket, $destKey);
 
-     }
 
-     // 获取公开文件的 URL
 
-     public static function getPublicObjectURL($bucketName, $ossKey)
 
-     {
 
-         $oss = new OSS();
 
-         $oss->ossClient->setBucket($bucketName);
 
-         return $oss->ossClient->getPublicUrl($ossKey);
 
-     }
 
-     // 获取私有文件的URL,并设定过期时间,如 \DateTime('+1 day')
 
-     public static function getPrivateObjectURLWithExpireTime($bucketName, $ossKey, DateTime $expire_time)
 
-     {
 
-         $oss = new OSS();
 
-         $oss->ossClient->setBucket($bucketName);
 
-         return $oss->ossClient->getUrl($ossKey, $expire_time);
 
-     }
 
-     public static function createBucket($bucketName)
 
-     {
 
-         $oss = new OSS();
 
-         return $oss->ossClient->createBucket($bucketName);
 
-     }
 
-     public static function getAllObjectKey($bucketName)
 
-     {
 
-         $oss = new OSS();
 
-         return $oss->ossClient->getAllObjectKey($bucketName);
 
-     }
 
-     public static function getObjectMeta($bucketName, $ossKey)
 
-     {
 
-         $oss = new OSS();
 
-         return $oss->ossClient->getObjectMeta($bucketName, $ossKey);
 
-     }
 
- }
 
 
  |