$provider, "endpoint" => $endpoint, "signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4, "region"=> "cn-shenzhen" ); $this->ossClient = new OssClient($config); } /** * 使用签名URL上传 * @param string bucket 存储空间名称 * @param string object 不包含Bucket名称在内的Object完整路径 * * */ function signUrl($bucket, $object,$options=['Content-Type'=>'multipart/form-data'] ) { // 指定签名URL的过期时间为600s(最长可达32400s)。 $timeout = 600; try { // 生成签名URL。 $signedUrl = $this->ossClient->signUrl($bucket, $object, $timeout, "PUT",$options); return $signedUrl; } catch (OssException $e) { Log::error('oss/signUrl','获取签名URL上传失败,错误:'.json_encode($e->getMessage())); return false; } } /** * 上传文件 * @param string file_name 文件名称 * @param string bucket 存储空间名称 * @param string object 填写Object完整目录路径,例如exampledir/。Object路径中不能包含Bucket名称。 * @param string filePath 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。 * * */ public function uploadFile($file_name,$filePath,$bucket="", $object=""){ $bucket = $bucket ? $bucket : config('aliyun.oss.bucket','kailin-saas'); try{ $object = $object.'/'.date('Y').'/'.date('m').'/'.$file_name; $result = $this->ossClient->uploadFile($bucket, $object, $filePath); $httpCode = $result['info']['http_code'] ?? 0; if ($httpCode == 200) { return $result['info']['url']; } return false; }catch(OssException $e ){ Log::error('oss/uploadFile','oss上传文件失败,错误:'.json_encode($e->getMessage())); return false; } } public function uploadDiyFile($filePath, $bucket="", $object="uploads/shop") { $bucket = $bucket ? $bucket : config('aliyun.oss.bucket','kailin-saas'); try{ //$object = $object.'/'.date('Y').'/'.date('m').'/'.'123'; $result = $this->ossClient->uploadFile($bucket, $object, $filePath); $httpCode = isset($result['info']['http_code']) ? $result['info']['http_code'] : 0; if ($httpCode == 200) { return $result['info']['url']; } return false; }catch(OssException $e ){ Log::error('oss/uploadFile','oss上传文件失败,错误:'.json_encode($e->getMessage())); return false; } } // 上传对象 public function putObject($object,$content,$bucket="",$options = NULL){ $bucket = $bucket ? $bucket : config('aliyun.oss.bucket','kailin-saas'); try{ //$object = $object.'/'.date('Y').'/'.date('m').'/'.'123'; $result = $this->ossClient->putObject($bucket,$object,$content,$options); $httpCode = isset($result['info']['http_code']) ? $result['info']['http_code'] : 0; if ($httpCode == 200) { return $result['info']['url']; } return false; }catch(OssException $e ){ Log::error('oss/putObject','oss上传文件失败,错误:'.json_encode($e->getMessage())); return false; } } }