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运行时报错can't find '__main__' module in 'xxx' 的解决办法
刚开始学习python,想要使用pycharm来编辑和运行程序,所以就安装了下pycharm ,写了个简单的代码决定运行下,结果出现如下错误: 度娘找了一番,解决了问题,发现错误主要因为在这里 没有运 ...
- JedisUtils工具类模板
redis.properties配置文件 redis.maxIdle=30 redis.minIdle=10 redis.maxTotal=100 redis.url=192.168.204.128 ...
- 恕我直言你可能真的不会java第11篇-Stream API终端操作
一.Java Stream管道数据处理操作 在本号之前写过的文章中,曾经给大家介绍过 Java Stream管道流是用于简化集合类元素处理的java API.在使用的过程中分为三个阶段.在开始本文之前 ...
- day04 跳转
一.事件跳转 1.标签绑定click事件 <view bindtap="clickme" data-nid="123" data-name="李 ...
- 基于 React 开发了一个 Markdown 文档站点生成工具
Create React Doc 是一个使用 React 的 markdown 文档站点生成工具.就像 create-react-app 一样,开发者可以使用 Create React Doc 来开发 ...
- Linux 相关学习内容(不定期更新)
Linux 主要目录 / 根目录,在 linux 下有且只有一个根目录,所有的东西都是从这里开始 /bin 可执行二进制文件的目录,如常用的命令,ls, tar, mv, cat.. /boot 放置 ...
- day35 作业
服务端 import subprocess import struct import json from socket import * server = socket(AF_INET, SOCK_S ...
- sass-loader安装+Failed to resolve loader: sass-loader You may need to install it.解决方法
方式一: 通过 cnpm 安装node-sass cnpm install node-sass --save 方式二: 通过npm 安装 1.安装sass-loader npm install sas ...
- 解决nginx 出现 413:Request Entity Too Large
去网上搜了一下,说是上传文件大小超过nginx的限制大小(nginx据说默认只能上传不超过2MB的文件) 解决方法: #nginx/conf/nginx.conf http { ... client_ ...
- requests接口自动化3-url里带参数的get请求:params
url里带参数的get请求:用params传参 #2.带参数的get请求,把参数写成字典格式,用params传参 para2={"type":"math"} r ...