阿里云OSS(对象存储)的个人见解及使用方法
2017-09-14 14:02
316 查看
整理了一下阿里云的OSS(对象存储)相关的问题,记下来,以备后用。
·······································分·······································割·······································线·······································
介绍一下阿里云的OSS(对象存储)
能查到的官话就不在这里赘述了,按照我在使用过程中的实际体验来说,阿里的OSS我主要用来存储图片。
优点:
1、不占服务器内存;
2、图片压缩处理,访问页面事节省流量
3、可以对图片进行放大或缩小的无损处理(在我看来是无损,没有专业层面的评估,仅仅是视觉和体验上)。
4、图片格式处理
5、水印等一些小功能
6、样式可控并且很灵活,可以自由配置,下面有详细介绍。
缺点:
1、程序中文件上传OSS服务器时需要提供文件在服务器的路径,所以需要先上传到服务器上作为中转然后上传至阿里云服务器
2、阿里云OSS服务商存储的图片在微信端无法打开,QQ端报毒,原因大家懂的,不过可以处理,需要把图片访问的路径用域名映射掉,例如:
http:// Bucket名称.oss-cn-beijing.aliyuncs.com/XXX.png
上面的路径是无法在端打开的,这时需要用一个域名映射。
比如把http:// Bucket名称.oss-cn-beijing.aliyuncs.com/映射成”www.kakayu.cc”即可在微信端打开,QQ也不会报毒。
以上便是我对阿里云的OSS的一些薄见,欢迎拍砖
·······································分·······································割·······································线·······································
简述一下初始化设置方法:
1、在阿里云上开通OSS服务
2、新建一个Bucket即”文件存储的区域”可以用不同的Bucket来区分网站不同的业务,比如个人中心的头像之类的图片与商品详情的图片就可以用不同的Bucket区别开来。
3、上传您的图片或者文件访问生成的路径,看是否可以访问。
4、可以进行一些设置,例如Bucket的私有、共有化,根据具体需求
5、付费方式要搞灵清,包月或者按量付费有很大区别
6、如果在微信端或者腾讯旗下产品,请按照上面介绍的步骤来映射域名,如果有问题可以联系我
·······································分·······································割·······································线·······································
下面要上代码了呦!(o゚▽゚)o
假设我们现在需要上传一张图片到阿里云OSS服务器:
1、首先,需要把图片上传至服务器的一个路径
2、上传文件至阿里云OSS服务器
可以吧在阿里云上保存的路径完整的保存进库里,在读取的时候直接读出路径即可,也可以保存关键信息,例如只保存bucket之下的完整路径。
个人建议只保存bucket之下的完整路径,因为这样比较灵活,可以无缝更换bucket,当预知当前账户出问题或者bucket出问题时,只需提前拷贝文件,便可实现无缝转移,如果保存完整的路径则需要处理大量数据。如果只保存bucket之后的路径,可以制定规则,例如模块化存储的bucket皆不相同,同时方面了对不同bucket的样式控制(下面有介绍),也便于管理和业务转向,并且有利于后期的数据维护。
至此,简单的上传已经完成,下面是读取方式:
想必大家看到这里应该有些明白了,只需把文件存储在OSS的路径放在网站上即可实现访问。事实既是如此,读取时主要需要处理只保存了部分数据的连接,拼接成完整的链接即可访问。
至此基本的上传和读取功能已经完毕,下面介绍图片处理功能:
准备工作:
在概览页中单击图片处理,单击新建样式,可以建多个,根据不同的业务需求而定,要分灵清每个CSS的名字对应的处理样式。
使用方式非常简单:
只需在拼接好的完整的访问路径之后加上参数即可,参数格式如下:
至此,阿里云OSS(对象存储)便介绍完毕了,欢迎拍砖。(o゚▽゚)o
·······································分·······································割·······································线·······································
介绍一下阿里云的OSS(对象存储)
能查到的官话就不在这里赘述了,按照我在使用过程中的实际体验来说,阿里的OSS我主要用来存储图片。
优点:
1、不占服务器内存;
2、图片压缩处理,访问页面事节省流量
3、可以对图片进行放大或缩小的无损处理(在我看来是无损,没有专业层面的评估,仅仅是视觉和体验上)。
4、图片格式处理
5、水印等一些小功能
6、样式可控并且很灵活,可以自由配置,下面有详细介绍。
缺点:
1、程序中文件上传OSS服务器时需要提供文件在服务器的路径,所以需要先上传到服务器上作为中转然后上传至阿里云服务器
2、阿里云OSS服务商存储的图片在微信端无法打开,QQ端报毒,原因大家懂的,不过可以处理,需要把图片访问的路径用域名映射掉,例如:
http:// Bucket名称.oss-cn-beijing.aliyuncs.com/XXX.png
上面的路径是无法在端打开的,这时需要用一个域名映射。
比如把http:// Bucket名称.oss-cn-beijing.aliyuncs.com/映射成”www.kakayu.cc”即可在微信端打开,QQ也不会报毒。
以上便是我对阿里云的OSS的一些薄见,欢迎拍砖
·······································分·······································割·······································线·······································
简述一下初始化设置方法:
1、在阿里云上开通OSS服务
2、新建一个Bucket即”文件存储的区域”可以用不同的Bucket来区分网站不同的业务,比如个人中心的头像之类的图片与商品详情的图片就可以用不同的Bucket区别开来。
3、上传您的图片或者文件访问生成的路径,看是否可以访问。
4、可以进行一些设置,例如Bucket的私有、共有化,根据具体需求
5、付费方式要搞灵清,包月或者按量付费有很大区别
6、如果在微信端或者腾讯旗下产品,请按照上面介绍的步骤来映射域名,如果有问题可以联系我
·······································分·······································割·······································线·······································
下面要上代码了呦!(o゚▽゚)o
假设我们现在需要上传一张图片到阿里云OSS服务器:
1、首先,需要把图片上传至服务器的一个路径
public String uploadFile(MultipartFile file, HttpServletRequest request, Integer type) throws IOException { // 获取当前时间 用于文件夹拼接 String date = TimeUtils.formatDate(new Date(), "yyyy-MM-dd"); // 拼接图片上传路径 留言所在路径为wanzigswx的BUCKET下wzgs下的的message文件夹之下 String oldPath = "bucketName" + "/" + "bucket之下的目标路径" + "/upload/" + date.replaceAll("-", "/") + "/items/"; // 创建路径 File filePath = new File(oldPath); if (!filePath.exists() && !filePath.isDirectory()) { filePath.mkdirs(); } // 写入文件 String fileName = file.getOriginalFilename(); String newName = new Date().getTime() + fileName.substring(fileName.lastIndexOf(".")); // 保存阿里云时读取文件路径 File tempFile = new File(oldPath, newName); if (!tempFile.getParentFile().exists()) { tempFile.getParentFile().mkdir(); } if (!tempFile.exists()) { tempFile.createNewFile(); } file.transferTo(tempFile); FileUploadController fileUploadController = new FileUploadController(); boolean flag = fileUploadController.saveFile(file, request, oldPath, newName, "bucket之下的目标路径"); if (flag) { return "SUCCESS"; } else { return "ERROR"; } }
2、上传文件至阿里云OSS服务器
public boolean saveFile(MultipartFile file, HttpServletRequest request, String oldPath, String newFileName, String typePath) throws IOException { String FILE_PATH = "linux下的绝对路径前缀" + oldPath; String endpoint = "阿里云服务器例如华东二是:oss-cn-shenzhen.aliyuncs.com"; String accessKeyId = "accessKeyId"; String accessKeySecret = "accessKeySecret"; String fileName = file.getOriginalFilename(); String newName = ""; if (newFileName == null || "".equals(newFileName)) { newName = new Date().getTime() + fileName.substring(fileName.lastIndexOf(".")); } else { newName = newFileName; } // 创建OSSClient实例 // 保存阿里云时读取文件路径 OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret); ossClient.putObject("bucketName", oldPath + newName, new File(FILE_PATH + newName)); // 关闭client ossClient.shutdown(); //删除文件 if (deleteFile(FILE_PATH + newName)) { System.out.println("文件上传成功!"); return true; } else { System.out.println("文件上传失败!"); } return false; }
可以吧在阿里云上保存的路径完整的保存进库里,在读取的时候直接读出路径即可,也可以保存关键信息,例如只保存bucket之下的完整路径。
个人建议只保存bucket之下的完整路径,因为这样比较灵活,可以无缝更换bucket,当预知当前账户出问题或者bucket出问题时,只需提前拷贝文件,便可实现无缝转移,如果保存完整的路径则需要处理大量数据。如果只保存bucket之后的路径,可以制定规则,例如模块化存储的bucket皆不相同,同时方面了对不同bucket的样式控制(下面有介绍),也便于管理和业务转向,并且有利于后期的数据维护。
至此,简单的上传已经完成,下面是读取方式:
想必大家看到这里应该有些明白了,只需把文件存储在OSS的路径放在网站上即可实现访问。事实既是如此,读取时主要需要处理只保存了部分数据的连接,拼接成完整的链接即可访问。
至此基本的上传和读取功能已经完毕,下面介绍图片处理功能:
准备工作:
在概览页中单击图片处理,单击新建样式,可以建多个,根据不同的业务需求而定,要分灵清每个CSS的名字对应的处理样式。
使用方式非常简单:
只需在拼接好的完整的访问路径之后加上参数即可,参数格式如下:
String newPath = "完整路径" + "?x-oss-process=style/" + "需要追加样式的名称,即在准备工作时创建的CSS名称";
至此,阿里云OSS(对象存储)便介绍完毕了,欢迎拍砖。(o゚▽゚)o
相关文章推荐
- thinkPHP简单导入和使用阿里云OSSsdk的方法
- 阿里云oss的一些使用方法和心得
- 阿里云OSS使用方法
- Collection接口方法与使用(重写老师的课堂代码+个人见解)
- Oracle中串连接符||的使用心得(个人见解)
- 人脸识别方法个人见解
- 奶萨的团队框架(Grid)个人设置技巧以及使用方法
- google排序方法个人小见解
- AI杂谈(3): dodo:人脸识别方法个人见解(zz from prfans)
- Ubuntu下使用Wine出现中文乱码的解决方法!个人亲测成功!
- 使用花生壳、路由器、个人电脑进行站点部署并实现外网域名访问图文详解(花生壳设置方法 使用方法 使用教程)
- .Net平台中虚方法的好处之个人见解
- 人脸识别方法个人见解
- linux下使用chrome浏览器时无法书签同步的个人解决方法
- dodo:人脸识别方法个人见解
- 软件架构的心得以及个人见解和方法
- 关于使用updatepanle后页面还会刷新的个人解决方法。
- 人脸识别方法个人见解
- syslog的使用方法个人小结
- dodo:人脸识别方法个人见解zz