tp5.0阿里云oss存储Demo
序言:最近在做一个项目,关于的是投稿的项目,其实就是一个图片网站的问题,原本做的一直是将文件存放到服务器中,但现在由于用户越来越多,所以要将图片的路径更新到一个位置,所以阿里云oss存储就出来了。
首先购买阿里云oss存储服务,这个是客户买的,当这个简单。
获取asskey在这个位置获取,早上我还找了半天。尴尬,但我没有权限,因为我现在登录的身份是rpm.具体是什么不要介意。
下载这个sdk,如果有人使用phpstom,然后使用下方的terminal,利用composer下载这个sdk的话,那么十有八九,这个会出现问题,所以还是老老实实的打开cmd,进入到项目根路径。
composer require aliyuncs/oss-sdk-php
创建一个控制器
php think make:controller pw/Demo
在头部引入,oss文件,因为我们使用的是composer安装的,所以说现在就是可以直接引用这个类。文件上传类
use OSS\OssClient;# 上传文件控制方法 public function UploadGen(){# 获取当前上传的文件名$file = request()->file('file'); # 设置绝对项目路径$dir = ROOT_PATH . 'public' . DS . 'uploads/images';# 将图片移动到定义好的项目路径中$upload = $file->move($dir);# 判断是否添加成功if(!$upload){$this->error($file->getError());}# 调用方法,然后返回的是一个地址 同时传递一个文件地址$oss_img_url = $this->aliyun($upload->getFilename());# 然后拿到这个地址开始传递到数据库中。 }# 上传到oss中 public function aliyun($savePath,$bucket="s1s-c1psaet-1"){$accessKeyId = config('alyoss.accessKeyId');//去阿里云后台获取秘钥$accessKeySecret = config('alyoss.accessKeySecret');//去阿里云后台获取秘钥$endpoint = config('alyoss.endpoint');//你的阿里云OSS地址 这个地址不需要添加前面的bucket名,直接是你的地址就可以了。# 上传到项目之后的路径$savePath = str_replace("\\","/",$savePath);# 本地路径$object = ROOT_PATH . 'public' . DS . 'uploads/images'."/20200519/".$savePath;//想要保存文件的名称$object = str_replace("\\",'/',$object);# 进行异常处理try {# 上传到oss存储$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);# 传递的值,一个是bucket是自己创建的存储空间,$savepath表示上传的文件名,$object是指当前的项目的地址,$ossClient->uploadFile($bucket, $savePath, $object);} catch (OssException $e) {print $e->getMessage();}return $object;}
遇到的坑,首先就是创建存储过程出现问题,还有一个就是本地路径项目文件的绝对地址,还有一个是这个url问题,这个问题值得是只需要使用外网访问的 s1s-c1psaet-1.oss-cn-hangzhou.aliyuncs.com,不需要前缀,修改成oss-cn-hangzhou.aliyuncs.com,就可以了.
4个小时,总算搞出来了,但是还有就是创建过程有问题。
oss生成缩略图功能只需要在后面添加,参数即在线生成缩略图
?x-oss-process=image/resize,w_100
循环遍历阿里云oss所有的数据
# 遍历循环阿里云所有的数据public function fileList($bucket="ss-cwpanet-1") {$accessKeyId = config('alyoss.accessKeyId');//去阿里云后台获取秘钥$accessKeySecret = config('alyoss.accessKeySecret');//去阿里云后台获取秘钥$endpoint = config('alyoss.endpoint');//你的阿里云OSS地址$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);$nextMarker = '';while (true) {try {$options = array('delimiter' => '','marker' => $nextMarker,);$listObjectInfo = $ossClient->listObjects($bucket, $options);} catch (OssException $e) {printf(__FUNCTION__ . ": FAILED\n");printf($e->getMessage() . "\n");return;}// 得到nextMarker,从上一次listObjects读到的最后一个文件的下一个文件开始继续获取文件列表。$nextMarker = $listObjectInfo->getNextMarker();$listObject = $listObjectInfo->getObjectList();$listPrefix = $listObjectInfo->getPrefixList();if (!empty($listObject)) {print("objectList:\n");foreach ($listObject as $objectInfo) {print($objectInfo->getKey() . "\n".'<br>');}}if (!empty($listPrefix)) {print("prefixList: \n");foreach ($listPrefix as $prefixInfo) {print($prefixInfo->getPrefix() . "\n");}}if ($listObjectInfo->getIsTruncated() !== "true") {break;}}}
- 同时可以使用它的另一种方式,阿里云oss提供的另一种方式,.phar,很神奇。直接引用就可以。
缩略图保存文件
https://ss-cwpanet-1.oss-cn-hangzhou.aliyuncs.com/722a2f0b5f2c43b0cb029da03de6f251.jpg?x-oss-process=image/resize,w_100
https://ss-cwpanet-1.oss-cn-hangzhou.aliyuncs.com/d75406a88c82a370c3efe5912a400aed.jpg?x-oss-process=image/resize,w_100
学无止境,今天突然想到了一个道理,其实选择什么语言不难,难的是什么?比如我就遇到的问题,我需要拿到这个url地址,然后再去文件里作比对,这样是难处理的。还有导入导出,这个还没有时间来整理。
tp5.0阿里云oss存储Demo相关推荐
- mysql数据库备份到oss_备份MySQL数据库并上传到阿里云OSS存储
1. 环境配置 要将本地文件上传到阿里云oss中, 必须使用阿里云提供的工具 ossutil, 有32位,也有64位的, Linux和Windows都有.具体可以到阿里云官网下载 本文以Linux系统 ...
- 从AWS S3换成阿里云OSS存储所踩的坑
因业务需要,AWS S3 不能使用了,要换成阿里云OSS存储和下载.简单作以记录,以作备忘. 1.参照https://help.aliyun.com/product/31815.html?spm=51 ...
- 前端(react)上传到阿里云OSS存储 实例
需求背景 由于现有的后台管理系统,上传的视频越来越大,加上上传视频较慢,后端小哥提出直接从前端上传视频或者其他文件到阿里云OSS存储. 阿里云OSS 阿里云OSS文档介绍,这里不做过多赘述 安装 原本 ...
- 七牛云和阿里云OSS存储图片服务器使用
目录 1 图片存储方案 1.1 介绍 1.2 七牛云存储 1.2.1 注册.登录 1.2.2 新建存储空间 1.2.3 查看存储空间信息 1.2.4 开发者中心 1.2.5 鉴权 1.2.6 Java ...
- django图片上传到oss_django 配置阿里云OSS存储media文件的例子
1. 安装django-aliyun-oss2-storage包 linux上用 pip install django-aliyun-oss2-storage 无报错,顺利安装 windows上报错: ...
- 分布式文件存储——阿里云oss存储
阿里云oss存储 目录 阿里云oss存储 获取设置参数 实现上传.下载方法 设置生命周期 获取设置参数 bucket名 endpoit key secret package configconst ( ...
- php(tp框架)使用阿里云OSS存储
这里只演示thinkphp5.0框架上传文件到阿里云oss对象存储中.其实官方文档说的很明白,但是在实操中我们总是会出现各种细节错误.恨不得有一个从头到尾的新手教程. 官方文档:PHP - 对象存储 ...
- C#阿里云OSS——存储
文章目录 阿里云OSS是什么? 使用步骤 开通OSS和创建AccessKey 项目应用 安装Aliyun.OSS.SDK.NetCore包 编写OSS帮助类,封装SDK提供的方法 AliyunOSSH ...
- go 使用 gin 上传文件到 阿里云oss存储
本文使用 go 版本是: go version go1.13 linux/amd64 阿里云oss go sdk版本:v2.0.4 官网可以下载 linux版本是:Linux version 3.1 ...
最新文章
- 这家民办研究院太年轻,竟敢跟世界级选手“叫板”
- wxWidgets:wxHelpEvent类用法
- mysql事务提交模式
- 云小课 |选定合适的证书,做“有证”的合规域名
- 数据库-windows上安装mysql
- flask-user and flask-admin实现登录验证
- 问题六十八:光照模型(Light model)——关于“环境光”模型的补充
- java初学者笔记总结day7
- axure 7.0 7.0.0.3142 简体中文版(附汉化包注册)
- 通过外挂插件向预训练语言模型中融入知识
- LR回归原理和损失函数的推导
- Springboot实现filter拦截token验证和跨域
- 常见排序算法之快速排序
- nrf52840合成4合1烧录文件
- 十大进销存管理软件亮点大对比
- 基于SSM的网上购物系统的设计与开发
- 重置uchome密码
- 怎样配置 Docker IPv6 ?
- 华科_图形学笔记_09_奇妙的真实感_片元着色01_01
- jekyll编写济南少儿国画博客
热门文章
- 【Python绘制幸运草】见者接幸运O(∩_∩)O见者皆幸运
- 国内目前最好用的USB转LIN总线调试工具软件,支持USB转LIN,USB转K,USB转CAN,USB转PWM功能
- 关于量子计算机的科学论文,量子计算机论文.doc
- 今天收到阿里巴巴一个电话面试
- 小程序中setInterval与clearInterval
- 入职字节跳动那一天,我哭了(蘑菇街被裁,奋战7个月拿下offer)
- 栈与队列实现以及相互转化
- 【Excel VBA】网抓知识(2)-抓取百度前5页查询结果
- 物通博联能源互联网解决方案
- 产业分析:内容机构(MCN)行业