johnlui/aliyun-oss v2.2.1,阿里云 OSS 官方 SDK 的 Composer 封装,支持任何 PHP 项目,包括 Laravel、Symfony、TinyLara 等等
首先我们需要下载安装johnlui/aliyun-oss v2.2.1,下载地址:[https://packagist.org/packages/johnlui/aliyun-oss]
(https://packagist.org/packages/johnlui/aliyun-oss)
第一步:打开命令行输入
composer require johnlui/aliyun-oss
安装有两种方法,这是第二种:
编辑配置文件,将以下内容增加到 composer.json:
require: {
"johnlui/aliyun-oss": "~2.0"
}
第二部:创建service文件App/Service/OSS.php,然后修改配置
OSS.php里面的内容
<?php
namespace App\Service;
use JohnLui\AliyunOSS;
class OSS
{
private $city = '北京';
// 经典网络 or VPC
private $networkType = '经典网络';
//private $BucketName = 'Bucket 名';//对应的oss储存里面的
private $AccessKeyId = 'AccessKeyId';//对应的oss储存里面的
private $AccessKeySecret = 'AccessKeySecret';//对应的oss储存里面的
private $isService = '外网地址';//对应的oss储存里面的外网
private $ossClient;
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,
$this->AccessKeySecret
);
}
//上传文件的方法
public static function publicUpload($bucketName, $ossKey, $filePath, $options = [])
{
$oss = new OSS();
$oss->ossClient->setBucket($bucketName);
return $oss->ossClient->uploadFile($ossKey, $filePath, $options);
}
}
还有很多方法,我就不全部写了,大家可以自己去看,上面的下载地址里面有
配置好后,laravel5的是不用写到composer.json里面的,只要命名空间写对了就可以用了,4版本的话就要加下面的代码到autoload -> classmap里面
"autoload": {
"classmap": [
"app/services"
]
}
然后就可以使用了
use App\Services\OSS;
//更多https://github.com/johnlui/AliyunOSS/blob/master/src/oss/src/Aliyun/OSS/OSSClient.php#L142-L148
OSS::publicUpload('bucket', '目标 object 名', '本地文件绝对路径', [
'ContentType' => 'application/pdf',
... ...
]);
这里面的bucket大家可以在.env
文件里面设置一下
ALIOSS_DOMAIN=保存文件的网址
ALIOSS_BUCKET=你的bucket的名字
然后我们顺便把保存文件的网址也定义一下,到时候上传完,想要展示出来的时候就可以直接调用了,那个网址可以在阿里云oss里面看到
以上就是我的心得,希望能帮到你