阿里云 OSS 对象存储

  • 实际开发需先阅读 阿里云 [OSS快速入门文档](https://help.aliyun.com/document_detail/31883.html?spm=5176.208357.1107607.14.7f06390fo9yUNT)
    • 开通服务无实际操作难度,PASS
    • 创建存储空间
      • 获取 Access Key
      • 若开通编程访问,请及时保存AccessKey 信息,页面关闭后将无法再次获取信息。
    • 搞好之后就 [下载SDK](https://help.aliyun.com/document_detail/85580.html?spm=a2c4g.11186623.6.799.7a1df55boh0XHl#h2-url-2) 开始开发
      • 将文件放入项目目录
      • 编写公共函数 方便直接调用
        • 以下代码均手动编写,可根据自己的实际情况重新编写(参考 [官方文档](https://help.aliyun.com/document_detail/32100.html?spm=a2c4g.11186623.6.801.79b933bcKdMAfT) 即可)
          • OSS 公共配置
          • OSS 报错抛出
          • OSS 上传
            • 上传成功文件都在此目录下
          • OSS 删除文件
          • OSS 图片加文字水印
  • 总结 : OSS存储(基础)没什么技术难点 ,我们项目只需要用到文件的简单存、读、删,图片的文字水印 。参照 [官方文档](https://help.aliyun.com/document_detail/32100.html?spm=a2c4g.11186623.6.801.79b933bcKdMAfT) 开发即可;

实际开发需先阅读 阿里云 OSS快速入门文档

开通服务无实际操作难度,PASS

创建存储空间

获取 Access Key




若开通编程访问,请及时保存AccessKey 信息,页面关闭后将无法再次获取信息。

这两个东西要复制出来 要用的

搞好之后就 下载SDK 开始开发

将文件放入项目目录

文件已给好命名空间

编写公共函数 方便直接调用

以下代码均手动编写,可根据自己的实际情况重新编写(参考 官方文档 即可)

OSS 公共配置
 if (!function_exists('file_oss_ini')) {/**** OSS配置* @author  tangshuai* @date    2019.5.29* @return OssClient* @throws OssException*/function file_oss_ini(){$accessKeyId = "<yourAccessKeyId>" ;$accessKeySecret = "<yourAccessKeySecret>";// Endpoint以杭州为例,其它Region请按实际情况填写。$endpoint = "oss-cn-hangzhou.aliyuncs.com";$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);return $ossClient;}}
OSS 报错抛出
 if (!function_exists('oss_error')) {/**** @author  tangshuai* @date    2019.5.30* @param string $function  必传  文件名* @param string $cont      必传  错误信息* @param string $bucket    选填  储存空间 默认 shjzsj* @throws OssException     异常抛出*/function oss_error($function='', $cont='', $bucket='shjzsj'){$ini = file_oss_ini();$file_path = date('Ymd');$file_name = date('His');$log = 'log/'.$file_path.'/'.$file_name.'.log';$content = $function . ' => '. $cont;$ini->putObject($bucket, $log, $content);}}
OSS 上传
 if (!function_exists('oss_upload')) {/**** OSS上传* @author  tangshuai* @date    2019.5.29* @param string $file      必传  文件名         从 upload/ 之后开始写* @param string $type_     必传  文件分类        ['user', 'data', 'goods', 'shop']* @param string $path      选填  前后端文件归总   默认前端 ['home', 'admin']* @param string $bucket    选填  储存空间        默认 shjzsj* @return string           返回  JSON* @throws OssException     异常抛出*/function oss_upload($file='', $type_, $path='home', $bucket="shjzsj"){$path_arr = ['home', 'admin'];$type_arr = ['user', 'data', 'goods', 'shop'];if ( !in_array($path, $path_arr) ){return returnJson(0, '路径参数 异常!', 'error');}if ( is_array($type_) ) {$type = $type_['0'];$file_path = $type_['1'];}else{$type = $type_;$file_path = date('Ymd');}if ( !in_array($type, $type_arr) ){return returnJson(0, '分类参数 异常!', 'error');}if ($file == ''){return returnJson(0, '文件参数 异常!', 'error');}$suffix =  substr($file,strrpos($file,'.'));// 重命名$file_name = date('His').rand(0000, 9999).md5(rand(0000, 9999)).$suffix;$filePath = WEB_ROOT . "upload/" . $file;$object = $path . '/' . $type . '/' . $file_path . '/' . $file_name;$ini = file_oss_ini();try {$res = $ini->uploadFile($bucket, $object, $filePath);if ($res['info']['http_code'] == 200 ){// 返回成功unlink($filePath);return returnJson(1, $res['info']['url'], 'success');}else{oss_error('UPLOAD', 'http_code : '.$res['info']['http_code']);return returnJson(0, 'http_code: '. $res['info']['http_code'], 'error');}} catch (OssException $e) {oss_error('UPLOAD', $e->getMessage());return returnJson(0, $e->getMessage(), 'error');}}}
上传成功文件都在此目录下

OSS 删除文件
 if (!function_exists('oss_delete')) {/**** OSS删除* @author  tangshuai* @date    2019.5.29* @param string $file      必传  文件名* @param string $bucket    选填  储存空间 默认 shjzsj* @return string           返回  JSON* @throws OssException     异常抛出*/function oss_delete($file='', $bucket="shjzsj"){if ($file == ''){return returnJson(0, '文件不存在!', 'error');}$left = 'http:\/\/shjzsj.oss-cn-hangzhou.aliyuncs.com\/';$file = str_replace($left,"", $file);$ini = file_oss_ini();try{$res = $ini->deleteObject($bucket, $file);$code = $res['info']['http_code'];if ($code == 200){return returnJson(1, 'success', 'success');}else{oss_error('DELETE', 'http_code : '.$code);return returnJson(0, 'http_code : '.$code, 'error');}} catch(OssException $e) {oss_error('DELETE', $e->getMessage());return returnJson(0, $e->getMessage(), 'error');}}}
OSS 图片加文字水印
 if (!function_exists('oss_watermark')) {/**** OSS 图片添加 文字水印* @author  tangshuai* @date    2019.5.29* @param string $img   必传  文件名* @param string $type  必传  文件分类        ['user', 'data', 'goods', 'shop']* @param string $path  选填  前后端文件归总   默认前端 ['home', 'admin']* @param string $text  选填  水印文字        默认前端 'www.jzsj.com 建筑设计网'* @return string       返回  JSON* @throws OssException 异常抛出*/function oss_watermark($img='', $type='', $path='home', $text='www.jzsj.com 建筑设计网'){if ($img == ''){return returnJson(0, '参1不可为空!', 'error');}if ($type == ''){return returnJson(0, '参2不可为空!', 'error');}// 表示文字水印的文字内容(必须编码)$str = base64_encode($text);// 表示文字水印的文字类型(必须编码)$font_type = 'ZmFuZ3poZW5naGVpdGk=';$param = '?x-oss-process=image/watermark,type_'.$font_type.',text_'.$str.',t_70,color_ffffff,size_30';$suffix = substr($img,strrpos($img,'.'));$image = $img.$param;$get = file_get_contents($image);file_put_contents(WEB_ROOT . "upload/tmp".$suffix, $get);$img_name = "tmp".$suffix;return oss_upload($img_name, $type, $path);}}

总结 : OSS存储(基础)没什么技术难点 ,我们项目只需要用到文件的简单存、读、删,图片的文字水印 。参照 官方文档 开发即可;

阿里云 OSS 对象存储 OSS 图片加文字水印相关推荐

  1. 在windows环境中部署SSM项目到阿里云服务器-对象存储OSS

    首先进入到阿里云官网:https://www.aliyun.com/,进入云服务器ECS,点击立即购买. 进入下面的界面,可以选择一键购买或者自定义购买 购买成功之后,点击管理控制台,进入购买之后的服 ...

  2. java操作阿里云的对象存储OSS

    官网:: 对象存储(Object Storage Service,简称OSS) 以下博客简单介绍连接阿里云的OSS,新建Bucket,删除Bucket,向阿里云的OSS存储中存储单个文件,获取单个文件 ...

  3. C# MVC使用阿里云对象存储加快图片加载速度(一)

    公司有个点餐的项目有大量的图片需要在扫码后的网页进行加载,刚开始使用的客户少的时候公司的4核8G,5M带宽的服务器还能挺快的加载图片和网页,但是客户一多,由于客户大多是快餐行业的,中午点餐的人数是相当 ...

  4. 阿里云oos对象存储 上手快速入门

    一·要想使用阿里云oos对象存储 首先要去阿里云官网开通这个服务 点进去开通该服务 根据自己需求填写即可 二·首次开通服务后 它会给你一个AccessKey ID和AccessKey Secret记得 ...

  5. 如何使用阿里云国际对象存储服务自动备份

    异地备份是一项重要的安全措施.它们允许在发生硬件故障.意外删除或任何其他灾难性事件时还原数据.自动备份可提高备份过程的可靠性,并确保定期备份最近的数据. 有关阿里云国际对象存储服务自动备份的操作,今天 ...

  6. PHP实现给图片加文字水印

    PHP实现给图片加文字水印 一.开发环境 1.Windows+Apache+MySQL+PHP的环境. 2.文本编辑器:Sublime. 二.主要技术 PHP+HTML+CSS 三.效果图与具体步骤 ...

  7. Java图片加文字水印

    Java图片加文字水印 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.I ...

  8. 阿里云新建对象存储Bucket,并配置自定义域名,配置cdn,配置cdn的ssl证书

    说明: A阿里云账户为开通oss账户,开通cdn账户. B阿里云账户为域名和ssl证书的账户 1. 新建Bucket 点击新建: 注意最后的加速是会收费的,可以参考官方文档.不加速也可以. 填写相关信 ...

  9. JAVA - base64图片加文字水印

    场景为:前端传入转码后的base64图片字符串,后台加水印并转为图片,再上传 使用postman调试接口时,总会出现400bad request的情况 若是把图片转码的base64编码放在header ...

最新文章

  1. 一位数据挖掘成功人士给数据挖掘在读研究生的建议
  2. C++知识点11——this指针,const成员函数,访问权限控制
  3. 静态成员变量和非静态成员变量的5个主要区别
  4. java并发面试题(一)基础
  5. upload-labs--wp(21关)
  6. 【TWVRP】基于matalb蚁群算法求解带时间窗的车辆路径规划问题【含Matlab源码 775期】
  7. 自学java,能找到工作吗?一位月薪13k的自学程序员分享自己是如何学会java的
  8. Java常见练习题总结
  9. 得意不张狂失败不气妥
  10. 关于Rasa你必须要知道的几件事
  11. Material Design控件使用(一)
  12. Android中使用Post带参数请求的方法
  13. Android 流量球效果的WaveView
  14. NO.65——人工智能学习:python实现广度优先搜索
  15. VTK交互系统 2 交互器样式
  16. java 解析m3u8的实例_m3u8文件完整实例及TS流抓取
  17. 树形结构(Python)
  18. ORAN专题系列-21:5G协议栈功能切分选项与O-RAN白盒化
  19. ddt python_Python 之数据驱动工具:DDT
  20. et200s模块接线图讲解_【图】ET200S热电偶模块的用法举例

热门文章

  1. 利用TCP协议完成服务器与客户端之间文件传输
  2. 解决Guacamole VNC剪切板乱码
  3. 计算机仿真撤稿,怎样撤稿?时间等的太长了 - 论文投稿 - 小木虫 - 学术 科研 互动社区...
  4. u-boot中喂狗操作
  5. 排列组合 C语言实现
  6. 还在高铁座位上找插座?高铁管家APP一招教会你!
  7. 移动互联网4种引流思维:免费思维、跨界思维、平台思维、金融思维
  8. python实现微信红包自动提醒
  9. jupyter一直在运行,不出结果
  10. RF无线射频相关学习