laravel 项目使用阿里云oss对象存储作为 Storage 存储文件

本文介绍了如何在Laravel项目中集成阿里云OSS对象存储服务,通过Composer安装扩展包,配置服务提供者和filesystems.php,并展示了如何上传文件到OSS。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

借鉴了一些优秀的代码,打造Laravel最好的OSS Storage扩展

安装

只需将下面这行

"jacobcyl/ali-oss-storage": "2.1"

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

Or, you can simple run below command

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


来安装

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

Jacobcyl\AliOSS\AliOssServiceProvider::class,


配置

配置 app/filesystems.php:

'disks'=>[

...

   

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

    ...

]


使用:

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');

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值