yan9/etocdn

v1.2 2021-08-26 06:04 UTC

This package is not auto-updated.

Last update: 2024-09-25 17:00:26 UTC


README

Laravel 包

需求

安装

composer require yan9/etocdn

config/app.php 的 providers 数组中添加以下行

Yan9\Etocdn\EtocdnOssServiceProvider::class,

配置

'disks' => [
    ...
    'etocdn' => [
        'driver'        => 'etocdn',
        'accessKey'     => env('ETOCDN_ACCESS_KEY'),
        'secretKey'     => env('ETOCDN_SECRET_KEY'),
        'accessOrg'     => env('ETOCDN_ACCESS_ORG'),
        'accessBrand'   => env('ETOCDN_ACCESS_BRAND'),
        'accessIdcInfo' => env('ETOCDN_ACCESS_IDCINFO'),    // 北京传1,苏州传2,深圳传3
        'cdnEnv'        => env('ETOCDN_CDNENV'),            // PROD 为正式,其他全部为测试
        'accessOs'      => env('ETOCDN_ACCESS_OS'),         // crm传1,etoshop传2,s2m传3,EMCN传4
        'endpoint'      => '',
        'cdnDomain'     => '',
        'ssl'           => true,
        'isCName'       => false,
        'debug'         => false,
    ],
    ...
]

用法

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

    if (!$image->isValid()) {
        return '上传失败';
    }
    
    $ext = $image->getClientOriginalExtension();
    $realPath = $image->getRealPath();
    $filename = str_random() . '.' . $ext;
    $filename = trim($filename, '/');
    
    $storage = \Illuminate\Support\Facades\Storage::disk('etocdn');
    Log::debug('OSS config:', [$filename]);
    
    // 上传文件
    $result = $storage->put($filename, file_get_contents($realPath));
    if (!$result) return false;
    var_dump($storage->url($filename));

    // 上传单个url
    $filename = 'aaaa.jpg';
    $realPath = 'https://cdn.zxlycr.top/37/2021-02-24/37_20210224191240114.jpg';
    
    $result = $storage->put($filename, $realPath);
    if (!$result) return false;
    var_dump($storage->url($filename));
    
    // 批量上传url
    // 如果需要自定义文件名称,请用单个url上传,批量上传不会采用自定义文件名称
    // BatchUpload 为批量上传标识
    // 上传会保留原始路径,如果以“/”结尾,会将“/”去掉
    $realPath = [
    'https://cdn.zxlycr.top/37/2021-02-24/37_20210224191240114.jpg',
    'https://cdn.zxlycr.top/37/2021-02-25/aaaa.jpg'
    ];
    
    $result = $storage->put('BatchUpload', serialize($realPath));
    if (!$result) return false;
    var_dump($storage->url($realPath));