序言:最近在做一个项目,关于的是投稿的项目,其实就是一个图片网站的问题,原本做的一直是将文件存放到服务器中,但现在由于用户越来越多,所以要将图片的路径更新到一个位置,所以阿里云oss存储就出来了。
  1. 首先购买阿里云oss存储服务,这个是客户买的,当这个简单。

  2. 获取asskey在这个位置获取,早上我还找了半天。尴尬,但我没有权限,因为我现在登录的身份是rpm.具体是什么不要介意。

  3. 下载这个sdk,如果有人使用phpstom,然后使用下方的terminal,利用composer下载这个sdk的话,那么十有八九,这个会出现问题,所以还是老老实实的打开cmd,进入到项目根路径。

    composer require aliyuncs/oss-sdk-php
    
  4. 创建一个控制器

    php think make:controller pw/Demo
    
  5. 在头部引入,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;}
  6. 遇到的坑,首先就是创建存储过程出现问题,还有一个就是本地路径项目文件的绝对地址,还有一个是这个url问题,这个问题值得是只需要使用外网访问的 s1s-c1psaet-1.oss-cn-hangzhou.aliyuncs.com,不需要前缀,修改成oss-cn-hangzhou.aliyuncs.com,就可以了.

  7. 4个小时,总算搞出来了,但是还有就是创建过程有问题。

  8. oss生成缩略图功能只需要在后面添加,参数即在线生成缩略图

    ?x-oss-process=image/resize,w_100
    
  9. 循环遍历阿里云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;}}}
  1. 同时可以使用它的另一种方式,阿里云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相关推荐

  1. mysql数据库备份到oss_备份MySQL数据库并上传到阿里云OSS存储

    1. 环境配置 要将本地文件上传到阿里云oss中, 必须使用阿里云提供的工具 ossutil, 有32位,也有64位的, Linux和Windows都有.具体可以到阿里云官网下载 本文以Linux系统 ...

  2. 从AWS S3换成阿里云OSS存储所踩的坑

    因业务需要,AWS S3 不能使用了,要换成阿里云OSS存储和下载.简单作以记录,以作备忘. 1.参照https://help.aliyun.com/product/31815.html?spm=51 ...

  3. 前端(react)上传到阿里云OSS存储 实例

    需求背景 由于现有的后台管理系统,上传的视频越来越大,加上上传视频较慢,后端小哥提出直接从前端上传视频或者其他文件到阿里云OSS存储. 阿里云OSS 阿里云OSS文档介绍,这里不做过多赘述 安装 原本 ...

  4. 七牛云和阿里云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 ...

  5. django图片上传到oss_django 配置阿里云OSS存储media文件的例子

    1. 安装django-aliyun-oss2-storage包 linux上用 pip install django-aliyun-oss2-storage 无报错,顺利安装 windows上报错: ...

  6. 分布式文件存储——阿里云oss存储

    阿里云oss存储 目录 阿里云oss存储 获取设置参数 实现上传.下载方法 设置生命周期 获取设置参数 bucket名 endpoit key secret package configconst ( ...

  7. php(tp框架)使用阿里云OSS存储

    这里只演示thinkphp5.0框架上传文件到阿里云oss对象存储中.其实官方文档说的很明白,但是在实操中我们总是会出现各种细节错误.恨不得有一个从头到尾的新手教程. 官方文档:PHP - 对象存储 ...

  8. C#阿里云OSS——存储

    文章目录 阿里云OSS是什么? 使用步骤 开通OSS和创建AccessKey 项目应用 安装Aliyun.OSS.SDK.NetCore包 编写OSS帮助类,封装SDK提供的方法 AliyunOSSH ...

  9. go 使用 gin 上传文件到 阿里云oss存储

    本文使用 go 版本是: go version go1.13 linux/amd64 阿里云oss go sdk版本:v2.0.4  官网可以下载 linux版本是:Linux version 3.1 ...

最新文章

  1. 这家民办研究院太年轻,竟敢跟世界级选手“叫板”
  2. wxWidgets:wxHelpEvent类用法
  3. mysql事务提交模式
  4. 云小课 |选定合适的证书,做“有证”的合规域名
  5. 数据库-windows上安装mysql
  6. flask-user and flask-admin实现登录验证
  7. 问题六十八:光照模型(Light model)——关于“环境光”模型的补充
  8. java初学者笔记总结day7
  9. axure 7.0 7.0.0.3142 简体中文版(附汉化包注册)
  10. 通过外挂插件向预训练语言模型中融入知识
  11. LR回归原理和损失函数的推导
  12. Springboot实现filter拦截token验证和跨域
  13. 常见排序算法之快速排序
  14. nrf52840合成4合1烧录文件
  15. 十大进销存管理软件亮点大对比
  16. 基于SSM的网上购物系统的设计与开发
  17. 重置uchome密码
  18. 怎样配置 Docker IPv6 ?
  19. 华科_图形学笔记_09_奇妙的真实感_片元着色01_01
  20. jekyll编写济南少儿国画博客

热门文章

  1. 【Python绘制幸运草】见者接幸运O(∩_∩)O见者皆幸运
  2. 国内目前最好用的USB转LIN总线调试工具软件,支持USB转LIN,USB转K,USB转CAN,USB转PWM功能
  3. 关于量子计算机的科学论文,量子计算机论文.doc
  4. 今天收到阿里巴巴一个电话面试
  5. 小程序中setInterval与clearInterval
  6. 入职字节跳动那一天,我哭了(蘑菇街被裁,奋战7个月拿下offer)
  7. 栈与队列实现以及相互转化
  8. 【Excel VBA】网抓知识(2)-抓取百度前5页查询结果
  9. 物通博联能源互联网解决方案
  10. 产业分析:内容机构(MCN)行业