laravel引入第三方云平台及使用方法

一、引入第三方类

1、阿里oss

composer require jacobcyl/ali-oss-storage:^2.1

2、腾讯cos

composer require "freyo/flysystem-qcloud-cos-v5:^2.0"

3、七牛云

composer require qiniu/php-sdk

二、新增配置

1、阿里oss

'disks'=>[
    ...
    'oss' => [
        'driver'            => 'oss',
        'access_id'         => env('ALIOSS_KEYID', null), //Your Aliyun OSS AccessKeyId
        'access_key'        => env('ALIOSS_KEYSECRET', null), //Your Aliyun OSS AccessKeySecret
        'bucket'            => env('ALIOSS_BUCKETNAME', null), //OSS bucket name
        'endpoint'          => env('ALIOSS_ENDPOINT', null), // OSS 外网节点或自定义外部域名
        'endpoint_internal' => env('ALIOSS_ENDPOINT_INTERNAL', null), // v2.0.4 新增配置属性,如果为空,则默认使用 endpoint 配置(由于内网上传有点小问题未解决,请大家暂时不要使用内网节点上传,正在与阿里技术沟通中)
        'cdnDomain'         => env('ALIOSS_DOMAIN', null), // 如果isCName为true, getUrl会判断cdnDomain是否设定来决定返回的url,如果cdnDomain未设置,则使用endpoint来生成url,否则使用cdn
        'ssl'               => env('ALIOSS_SSL', false), // true to use 'https://' and false to use 'http://'. default is false,
        'isCName'           => env('ALIOSS_CNAME', false), // 是否使用自定义域名,true: 则Storage.url()会使用自定义的cdn或域名生成文件url, false: 则使用外部节点生成url
        'debug'             => env('ALIOSS_DEBUG', true),
    ],
]

2、腾讯cos

'cloud' => env('FILESYSTEM_CLOUD', 'cosv5'),

'disks' => [

    // 腾讯云 cos 存储
    'cosv5' => [
        'driver' => 'cosv5',
        'region'        => env('COSV5_REGION', 'ap-shanghai'), // 需要设置
        'credentials'   => [
            'appId'     => env('COSV5_APP_ID'), // 需要设置
            'secretId'  => env('COSV5_SECRET_ID'), // 需要设置
            'secretKey' => env('COSV5_SECRET_KEY'), // 需要设置
        ],
        'timeout'         => env('COSV5_TIMEOUT', 60),
        'connect_timeout' => env('COSV5_CONNECT_TIMEOUT', 60),
        'bucket'          => env('COSV5_BUCKET'), // 需要设置
        'cdn'             => env('COSV5_CDN'),
        'scheme'          => env('COSV5_SCHEME', 'https'),
    ],

],

3、七牛云

'disks' => [
    ... ,
    'qiniu' => [
        'driver'  => 'qiniu',
        'domains' => [
            'default'   => 'xxxxx.com1.z0.glb.clouddn.com', //你的七牛域名
            'https'     => 'dn-yourdomain.qbox.me',         //你的HTTPS域名
            'custom'    => 'static.abc.com',                //你的自定义域名
         ],
        'access_key'=> '',  //AccessKey
        'secret_key'=> '',  //SecretKey
        'bucket'    => '',  //Bucket名字
        'notify_url'=> '',  //持久化处理回调地址
        'url'       => 'http://of8kfibjo.bkt.clouddn.com/',  // 填写文件访问根url
    ],
],

三、Storage 使用

//实例化
$disk=Storage::disk('oss');
//存储地址
$dir="xx/xx";
// 上传文件 第一个参数是储存位置,第二个参数是文件内容
$disk->put($dir.'/file.jpg', "xxxx");

// 判断指定对象是否存在
$disk->exists($disk.'/file.jpg');

// 获得指定位置下的所有目录
$disk->directories($dir);

// 递归获得指定位置下的所有目录
$disk->allDirectories($dir);

// 重命名指定对象 参数1要改变的文件 参数2新名称
$disk->rename($dir.'file.jpg', $dir.'/file1.jpg');

// 删除对象 单个文件也可以直接写url
$disk->delete([$dir.'file1.jpg', $dir.'file2.jpg']);

// 创建指定目录
$disk->makeDirectory($dir);

// 删除指定目录 目录中的所有文件同样会被删除 请慎重使用
$disk->deleteDirectory($dir);

// 获得指定文件的访问地址
$disk->url($url.'/img.jpg'); 

你可能感兴趣的:(框架使用,laravel,php,服务器)