Laravel 使用阿里云 oss 存储对象
一、下载安装
composer require jacobcyl/ali-oss-storage
二、注册服务提供者
在config/app.php的providers下添加:
//阿里云OSS对象存储提供者
Jacobcyl\AliOSS\AliOssServiceProvider::class,
三、配置文件系统
在app/filesystems.php中的disks里下添加:
'disks' => [
//...
'oss' => [
'driver' => 'oss',
'access_id' => '',//Your Aliyun OSS AccessKeyId
'access_key' => '',//Your Aliyun OSS AccessKeySecret
'bucket' => '',//OSS bucket name
'endpoint' => 'oss-cn-shenzhen.aliyuncs.com', //<the endpoint of OSS, E.g: oss-cn-hangzhou.aliyuncs.com | custom domain, E.g:img.abc.com> OSS 外网节点或自定义外部域名
//'endpoint_internal' => '', //<internal endpoint [OSS内网节点] 如:oss-cn-shenzhen-internal.aliyuncs.com> v2.0.4 新增配置属性,如果为空,则默认使用 endpoint 配置(由于内网上传有点小问题未解决,请大家暂时不要使用内网节点上传,正在与阿里技术沟通中)
//'cdnDomain' => '', //<CDN domain, cdn域名> 如果isCName为true, getUrl会判断cdnDomain是否设定来决定返回的url,如果cdnDomain未设置,则使用endpoint来生成url,否则使用cdn
'ssl' => false, // true to use 'https://' and false to use 'http://'. default is false,
'isCName' => false, // 是否使用自定义域名,true: 则Storage.url()会使用自定义的cdn或域名生成文件url, false: 则使用外部节点生成url
'debug' => true,
],
//...
],
四、基础用法
Storage::disk('oss'); // 如果默认文件系统驱动程序是oss,则可以跳过此步骤
//获取指定存储桶的所有文件(请参阅upond配置)
Storage::files($directory);
Storage::allFiles($directory);
Storage::put('path/to/file/file.jpg', $contents); //第一个参数是目标文件路径,第二个参数是文件内容
Storage::putFile('path/to/file/file.jpg', 'local/path/to/local_file.jpg'); //从本地路径上传文件
Storage::get('path/to/file/file.jpg'); // 通过路径获取文件对象
Storage::exists('path/to/file/file.jpg'); // 确定存储(OSS)上是否存在给定文件
Storage::size('path/to/file/file.jpg'); // 获取文件大小(字节)
Storage::lastModified('path/to/file/file.jpg'); // 获取最后修改日期
Storage::directories($directory); // 获取给定目录中的所有目录
Storage::allDirectories($directory); // 获取给定目录中的所有(递归)目录
Storage::copy('old/file1.jpg', 'new/file1.jpg');//拷贝文件
Storage::move('old/file1.jpg', 'new/file1.jpg');//移动文件
Storage::rename('path/to/file1.jpg', 'path/to/file2.jpg');//重命名文件
Storage::prepend('file.log', 'Prepended Text'); // 在文件前面追加内容
Storage::append('file.log', 'Appended Text'); // 在文件后面追加内容
Storage::delete('file.jpg');//删除文件
Storage::delete(['file1.jpg', 'file2.jpg']);//删除多个文件
Storage::makeDirectory($directory); // 创建一个目录
Storage::deleteDirectory($directory); //递归删除目录。它将删除给定目录中的所有文件,因此请谨慎使用。
// 升级日志
// 适用于v2.0版本的新插件
Storage::putRemoteFile('target/path/to/file/jacob.jpg', 'http://example.com/jacob.jpg'); //通过远程URL将远程文件上传到存储
// v2.0.1版本的新功能
Storage::url('path/to/img.jpg'); // 获取文件网址
六、参考文档
packagist地址:https://packagist.org/packages/jacobcyl/ali-oss-storage
阿里云OSS官方文档:https://help.aliyun.com/product/31815.html?spm=a2c4g.11186623.6.540.49122215yuKg2N
Laravel 使用阿里云 oss 存储对象的更多相关文章
- 谷粒 | 10 | 阿里云OSS存储对象服务
阿里云OSS对象存储服务 准备工作 1.在service模块新建子模块service_oss 2.引入pom.xml文件中引入oss服务依赖 <dependencies> <!--a ...
- 前端(react)上传到阿里云OSS存储 实例
需求背景 由于现有的后台管理系统,上传的视频越来越大,加上上传视频较慢,后端小哥提出直接从前端上传视频或者其他文件到阿里云OSS存储. 阿里云OSS 阿里云OSS文档介绍,这里不做过多赘述 安装 原本 ...
- php将图片存储在阿里云oss存储上
创建两个方法 1.上传方法 use OSS\OssClient; use think\Config; use OSS\Core\OssException; /** * 存储文件 * * @param ...
- 备份MySQL数据库并上传到阿里云OSS存储
1. 环境配置 要将本地文件上传到阿里云oss中, 必须使用阿里云提供的工具 ossutil, 有32位,也有64位的, Linux和Windows都有.具体可以到阿里云官网下载 官网及文档: htt ...
- 云-阿里云-OSS:对象存储 OSS
ylbtech-云-阿里云-OSS:对象存储 OSS 对象存储服务(Object Storage Service,OSS)是一种海量.安全.低成本.高可靠的云存储服务,适合存放任意类型的文件.容量和处 ...
- laravel使用阿里云OSS上传图片
需要自己注册阿里云账号并且开通oss服务,建立Bucket存储空间,此步骤不做演示 一.composer安装:使用composer在项目根目录执行以下命令 composer require johnl ...
- 阿里云OSS存储开发(一)
Step 1. 初始化一个OSSClient OSSClient是与OSS服务交互的客户端,SDK的OSS操作都是通过OSSClient完成的. 下面代码新建了一个OSSClient: using A ...
- 阿里云OSS存储
1.accessKeyId 与 accessKeySecret 是由系统分配给用户的,称为ID对,用于标识用户,为访问OSS做签名验证. 2.Bucket是OSS上的命名空间,相当于数据的容器,可以存 ...
- Java项目接入阿里云OSS存储
需求背景 目前公司内部项目所支持的文件云存储方式还是公司内部项目组提供的方案,但在时间的考验之下,弊端显现,尤其是灾备切换过程中需要切换访问地址,这种操作不方便,更可能因为中间过程的失误导致资源不可用 ...
随机推荐
- python用直方图规定化实现图像风格转换
以下内容需要直方图均衡化.规定化知识 均衡化:https://blog.csdn.net/macunshi/article/details/79815870 规定化:https://blog.csdn ...
- 一种基于LQR使输出更加稳定的算法(超级实用)
已知: 令: 则: 以上三式成立 具体步骤: 状态量最后一行加入“上一时刻的控制量”: A,B根据上述方法变形: Q,R增加维度(控制量一般都为一个,此时R维度不变): 最关键的是——输出量已经变为“ ...
- js基础练习题(3)
8.this 1.举例说说apply方法和call方法的作用和区别 2.读下面代码,写程序结果 function identify () { return this.name.toUpperCase( ...
- VC单选按钮控件(Radio Button)用法(转)
先为对话框加上2个radio button,分别是Radio1和Radio2. 问题1:如何让Radio1或者Radio2默认选上?如何知道哪个被选上了? 关键是选上,“默认”只要放在OnInitDi ...
- Python之浅谈深浅拷贝
目录 深浅拷贝 拷贝 浅拷贝 深拷贝 深浅拷贝 拷贝 s=['tim','age'] s2=s #这里的s2列表指向与s相同的id 当s2为s的拷贝对象时,s内的可变类型变化,s2变化;s内的不可变类 ...
- 浅谈并查集&种类并查集&带权并查集
并查集&种类并查集&带权并查集 前言: 因为是学习记录,所以知识讲解+例题推荐+练习题解都是放在一起的qvq 目录 并查集基础知识 并查集基础题目 种类并查集知识 种类并查集题目 并查 ...
- hive中left semi join 与join 的区别
LEFT SEMI JOIN:左半开连接会返回左边表的记录,前提是其记录对于右边表满足ON语句中的判定条件.对于常见的内连接(INNER JOIN),这是一个特殊的,优化了的情况.大多数的SQL方言会 ...
- 基础-Junit单元测试_反射_注解
一.Junit单元测试 1.1 测试分类: 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值. 白盒测试:需要写代码的.关注程序具体的执行流程. 1.2 Junit使用(白盒测试) 使用步 ...
- JVM源码分析之synchronized实现
“365篇原创计划”第十二篇. 今天呢!灯塔君跟大家讲: JVM源码分析之synchronized实现 java内部锁synchronized的出现,为多线程的并发执行提供了一个稳定的 ...
- Numerical Sequence (Hard vision) 题解
The only difference between the easy and the hard versions is the maximum value of \(k\). You are gi ...