阿里云 OSS 对象存储 OSS 图片加文字水印
阿里云 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 图片加文字水印相关推荐
- 在windows环境中部署SSM项目到阿里云服务器-对象存储OSS
首先进入到阿里云官网:https://www.aliyun.com/,进入云服务器ECS,点击立即购买. 进入下面的界面,可以选择一键购买或者自定义购买 购买成功之后,点击管理控制台,进入购买之后的服 ...
- java操作阿里云的对象存储OSS
官网:: 对象存储(Object Storage Service,简称OSS) 以下博客简单介绍连接阿里云的OSS,新建Bucket,删除Bucket,向阿里云的OSS存储中存储单个文件,获取单个文件 ...
- C# MVC使用阿里云对象存储加快图片加载速度(一)
公司有个点餐的项目有大量的图片需要在扫码后的网页进行加载,刚开始使用的客户少的时候公司的4核8G,5M带宽的服务器还能挺快的加载图片和网页,但是客户一多,由于客户大多是快餐行业的,中午点餐的人数是相当 ...
- 阿里云oos对象存储 上手快速入门
一·要想使用阿里云oos对象存储 首先要去阿里云官网开通这个服务 点进去开通该服务 根据自己需求填写即可 二·首次开通服务后 它会给你一个AccessKey ID和AccessKey Secret记得 ...
- 如何使用阿里云国际对象存储服务自动备份
异地备份是一项重要的安全措施.它们允许在发生硬件故障.意外删除或任何其他灾难性事件时还原数据.自动备份可提高备份过程的可靠性,并确保定期备份最近的数据. 有关阿里云国际对象存储服务自动备份的操作,今天 ...
- PHP实现给图片加文字水印
PHP实现给图片加文字水印 一.开发环境 1.Windows+Apache+MySQL+PHP的环境. 2.文本编辑器:Sublime. 二.主要技术 PHP+HTML+CSS 三.效果图与具体步骤 ...
- Java图片加文字水印
Java图片加文字水印 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.I ...
- 阿里云新建对象存储Bucket,并配置自定义域名,配置cdn,配置cdn的ssl证书
说明: A阿里云账户为开通oss账户,开通cdn账户. B阿里云账户为域名和ssl证书的账户 1. 新建Bucket 点击新建: 注意最后的加速是会收费的,可以参考官方文档.不加速也可以. 填写相关信 ...
- JAVA - base64图片加文字水印
场景为:前端传入转码后的base64图片字符串,后台加水印并转为图片,再上传 使用postman调试接口时,总会出现400bad request的情况 若是把图片转码的base64编码放在header ...
最新文章
- 一位数据挖掘成功人士给数据挖掘在读研究生的建议
- C++知识点11——this指针,const成员函数,访问权限控制
- 静态成员变量和非静态成员变量的5个主要区别
- java并发面试题(一)基础
- upload-labs--wp(21关)
- 【TWVRP】基于matalb蚁群算法求解带时间窗的车辆路径规划问题【含Matlab源码 775期】
- 自学java,能找到工作吗?一位月薪13k的自学程序员分享自己是如何学会java的
- Java常见练习题总结
- 得意不张狂失败不气妥
- 关于Rasa你必须要知道的几件事
- Material Design控件使用(一)
- Android中使用Post带参数请求的方法
- Android 流量球效果的WaveView
- NO.65——人工智能学习:python实现广度优先搜索
- VTK交互系统 2 交互器样式
- java 解析m3u8的实例_m3u8文件完整实例及TS流抓取
- 树形结构(Python)
- ORAN专题系列-21:5G协议栈功能切分选项与O-RAN白盒化
- ddt python_Python 之数据驱动工具:DDT
- et200s模块接线图讲解_【图】ET200S热电偶模块的用法举例