laravel-admin 文件上传OSS

laravel-admin 文件上传OSS

下面是我的 composer.json 内容

"require": {
"php": ">=7.0.0",
"encore/laravel-admin": "^1.6",
"jacobcyl/ali-oss-storage": "^2.1",
"laravel/framework": "5.5.*",
...
}

具体流程
1、下载合适的第三方包
在 composer.json 文件中的 require 添加 "jacobcyl/ali-oss-storage": "^2.1";

或者直接运行 composer require jacobcyl/ali-oss-storage:^2.1 亦可。

2、添加服务提供者
在 config/app.php 文件下增加 Jacobcyl\AliOSS\AliOssServiceProvider::class,,如下图所示:


微信图片_20190930172612.png

在 config/filesystems.php 增加 OSS 配置信息
如下:

'disks' => [

    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
    ],

    'public' => [
        'driver' => 'local',
        'root' => storage_path('app/public'),
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],
    
    's3' => [
        'driver' => 's3',
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'region' => env('AWS_DEFAULT_REGION'),
        'bucket' => env('AWS_BUCKET'),
    ],
    
    // 这里是新增
    'oss' => [
        'driver' => 'oss',
        'access_id' => // 这里是你的 OSS 的 accessId,
        'access_key' => // 这里是你的 OSS 的 accessKey,
        'bucket' => // 这里是你的 OSS 自定义的存储空间名称,
        'endpoint' => 'oss-cn-hangzhou.aliyuncs.com', // 这里以杭州为例
        'cdnDomain' => '', // 使用 cdn 时才需要写, https://加上 Bucket 域名
        'ssl' => true, // true 使用 'https://' false 使用 'http://'. 默认 false,
        'isCName' => false, // 是否使用自定义域名,true: Storage.url() 会使用自定义的 cdn 或域名生成文件 url,false: 使用外部节点生成url
        'debug' => false,
    ],

],

在 config/filesystems.php 更改 'default' 配置信息
如下:

'default' => env('FILESYSTEM_DRIVER', 'oss'),

也可以在 env 文件中定义 FILESYSTEM_DRIVER = oss 也可。

5、在 config/admin.php 修改 upload 配置

如下:

'upload' => [

    // Disk in `config/filesystem.php`.
    'disk' => 'oss', // 这里就是指向 disks 下面的 oss 配置

    // Image and file upload path under the disk above.
    'directory' => [
        'image' => 'images',
        'file'  => 'files',
    ],
],

网上的步骤一般就是到这里了,上面的流程参考:[laravel-admin 文件上传 oss]

问题出现

但是这时候问题就出现了, laravel-admin 本身为了开发者快速开发,本身就完成了一部分功能,当我们使用默认账号 admin 登录进去后,在后台的页面右上角和左上角都有默认的头像显示,这个默认头像是存放在本地 local 下的,在 vendor/encore/laravel-admin/resources/views/partialsheader.blade.phpsidebar.blade.php 两个视图文件中显示,请看下图:

header.blade.php

2413175662-5c7cf74ede20c.png

sidebar.blade.php


506692446-5c7cf7764d1f8.png

而我们在 具体流程 的 5个步骤中已经把上传的配置改成了 oss 了,这时访问后台时,就会抛出一个异常:

1059289183-5c7cf85f2a636.png

https://segmentfault.com/a/1190000018384162 详细请看原文链接 如有侵权 联系我 马上删除
转载https://segmentfault.com/a/1190000018384162

你可能感兴趣的:(laravel-admin 文件上传OSS)