Larave 结合用阿里云 OSS 作为 Storage 存储文件

Aliyun-oss-storage for Laravel 5+


借鉴了一些优秀的代码,综合各方,同时做了更多优化,将会添加更多完善的接口和插件,打造Laravel最好的OSS Storage扩展

参考

thephpleague/flysystem-aws-s3-v2

apollopy/flysystem-aliyun-oss



Require

Laravel 5+

cURL extension


安装

只需将下面这行

"jacobcyl/ali-oss-storage": "dev-master"

添加到你项目的composer.json require内. 然后运行 composer install or composer update.

Or, you can simple run below command

"composer require jacobcyl/ali-oss-storage:dev-master"


来安装

在 config/app.php 文件中添加provider

Jacobcyl\AliOSS\AliOssServiceProvider::class,


配置

配置 app/filesystems.php:

'disks'=>[

...

    'oss' => [

    'driver'        => 'oss',

    'access_id'    => '<你阿里云 AccessKeyId>',

    'access_key'    => '<你阿里云 AccessKeySecret>',

    'bucket'        => '',

    'endpoint'      => '<节点名称或自定义域名>',

    'isCName'      => <如果上面使用了节点名称,这里设置为false,如果使用了自定义域名,为true>,

    'debug'        => '',

    ],

    ...

]


使用:

use Illuminate\Http\Request;

use Illuminate\Support\Facades\Storage;

public function photo(Request $request){

    if($request->isMethod('post')){

        $file=$request->file('file');

        if($file->isValid()){

            //获取文件的原文件名 包括扩展名

//$yuanname= $file->getClientOriginalName();

//获取文件的扩展名

//$kuoname=$file->getClientOriginalExtension();

//获取文件的类型

//$type=$file->getClientMimeType();

//获取文件的绝对路径,但是获取到的在本地不能打开

            $path=$file->getRealPath();

            //要保存的文件名 时间+扩展名

            $filename='avatars/'.date('Y-m-d').'/'. uniqid() .'.'.'png';

            //保存文件          配置文件存放文件的名字  ,文件名,路径

            $bool= Storage::disk('oss')->put($filename,file_get_contents($path));

            dd($bool);

        }

}

    return view('admincp.index.photo');

}

来源地址:https://laravel-china.org/topics/2165/larave-combined-with-ali-cloud-oss-as-storage-storage-file

你可能感兴趣的:(Larave 结合用阿里云 OSS 作为 Storage 存储文件)