1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 阿里云 OSS 对象存储 OSS 图片加文字水印

阿里云 OSS 对象存储 OSS 图片加文字水印

时间:2020-10-03 02:16:23

相关推荐

阿里云 OSS 对象存储 OSS 图片加文字水印

阿里云 OSS 对象存储

实际开发需先阅读 阿里云 [OSS快速入门文档](/document_detail/31883.html?spm=5176.208357.1107607.14.7f06390fo9yUNT)开通服务无实际操作难度,PASS创建存储空间获取 Access Key若开通编程访问,请及时保存AccessKey 信息,页面关闭后将无法再次获取信息。 搞好之后就 [下载SDK](/document_detail/85580.html?spm=a2c4g.11186623.6.799.7a1df55boh0XHl#h2-url-2) 开始开发将文件放入项目目录编写公共函数 方便直接调用以下代码均手动编写,可根据自己的实际情况重新编写(参考 [官方文档](/document_detail/32100.html?spm=a2c4g.11186623.6.801.79b933bcKdMAfT) 即可)OSS 公共配置OSS 报错抛出OSS 上传上传成功文件都在此目录下 OSS 删除文件OSS 图片加文字水印 总结 : OSS存储(基础)没什么技术难点 ,我们项目只需要用到文件的简单存、读、删,图片的文字水印 。参照 [官方文档](/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 .5.29* @return OssClient* @throws OssException*/function file_oss_ini(){$accessKeyId = "<yourAccessKeyId>" ;$accessKeySecret = "<yourAccessKeySecret>";// Endpoint以杭州为例,其它Region请按实际情况填写。$endpoint = "oss-cn-";$ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);return $ossClient;}}

OSS 报错抛出

if (!function_exists('oss_error')) {/**** @author tangshuai* @date .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 .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 .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-\/';$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 .5.29* @param string $img 必传 文件名* @param string $type 必传 文件分类 ['user', 'data', 'goods', 'shop']* @param string $path 选填 前后端文件归总 默认前端 ['home', 'admin']* @param string $text 选填 水印文字 默认前端 ' 建筑设计网'* @return string 返回 JSON* @throws OssException 异常抛出*/function oss_watermark($img='', $type='', $path='home', $text=' 建筑设计网'){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存储(基础)没什么技术难点 ,我们项目只需要用到文件的简单存、读、删,图片的文字水印 。参照 官方文档 开发即可;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。