OOS:阿里云对象存储OOS是一款海量、安全、低成本、高可靠的云存储服务,提供99.99%的数据持久性和可用性,多种存储范例供选择,全面优化存储成本,非常得当存储非布局化数据,例如视频,图形,日志,文本文件以及各种app应用,多终端同步软件,网盘下载站的文件等,单个文件的巨细从1字节到18.8TB,可以存储的个数无限制。
1、注册登录,https://www.aliyun.com/https://www.aliyun.com/
2、登录成功后(最好支付宝登陆)将鼠标悬停在主界面导航栏中的产品地区位置并进入对象存储OSS;
3、开通云存储,实名认证,开通OOS。
4、点击管理控制台进入,进入对象存储主界面后会看到概览中有一项Bucket列表,这就是用于创建云存储文件夹的地方;根据下图的流程会进入到一个创建Bucket添加信息栏中;
【Bucket名称】:用户自定义名称 【地区】:自定义选择 【存储范例】:尺度存储 【同城冗余存储】:关闭「收费」 【版本控制】:不开通「收费」 【读写权限】:公共读 【服务端加密方式】:无 【及时日志查询】:不开通「收费」 【定时备份】:不开通「收费」
5、进入设置成功的存储空间内需要生存Bucket 域名;在oss主界面中进入Access Key并检察生存,后期会在xml配置中利用,留意Bucket地址和Access Key。
6、完成到这一步就说明阿里云OSS已经设置好了,接下来就是编写后端的阶段了!
后端利用:
pom文件引入依赖:
- <!--阿里云oss依赖-->
- <dependency>
- <groupId>com.aliyun.oss</groupId>
- <artifactId>aliyun-sdk-oss</artifactId>
- </dependency>
复制代码 application.properties文件中,添加存放云存储的Bucket地址及AccessKey配置信息
- # 端口号
- server.port=8001
- spring.application.name=yun-upload
- # 环境地址
- spring.profiles.active=dev
- # 阿里云云存储OSS配置信息
- # Bucket地址
- aliyun.oss.file.endpoint=自定义
- # Access Key
- aliyun.oss.file.keyid=自定义
- aliyun.oss.file.keysecret=自定义
- # Bucket名称
- aliyun.oss.file.bucketname=自定义
复制代码 utils类:用于读取xml配置信息,将配置信息转换成工具类进行调用;
- package com.csdn.oss.utils;
- import org.springframework.beans.factory.InitializingBean;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Component;
- //当项目已启动,spring接口,spring加载之后,执行接口一个方法
- @Component
- public class ConstantPropertiesUtils implements InitializingBean {
- //读取配置文件内容
- @Value("${aliyun.oss.file.endpoint}")
- private String endpoint;
- @Value("${aliyun.oss.file.keyid}")
- private String keyId;
- @Value("${aliyun.oss.file.keysecret}")
- private String keySecret;
- @Value("${aliyun.oss.file.bucketname}")
- private String bucketName;
- //定义公开静态常量
- public static String END_POIND;
- public static String ACCESS_KEY_ID;
- public static String ACCESS_KEY_SECRET;
- public static String BUCKET_NAME;
- @Override
- public void afterPropertiesSet() throws Exception {
- END_POIND = endpoint;
- ACCESS_KEY_ID = keyId;
- ACCESS_KEY_SECRET = keySecret;
- BUCKET_NAME = bucketName;
- }
- }
复制代码 service上传接口:
- package com.csdn.oss.service;
- import org.springframework.web.multipart.MultipartFile;
- public interface OssService {
- //上传头像到oss
- String uploadFileAvatar(MultipartFile file);
- }
复制代码 serviceImpl:用于获取上传文件进行判断处置惩罚;
- package com.csdn.oss.service.impl;
- import com.aliyun.oss.OSS;
- import com.aliyun.oss.OSSClientBuilder;
- import com.csdn.oss.service.OssService;
- import com.csdn.oss.utils.ConstantPropertiesUtils;
- import org.joda.time.DateTime;
- import org.springframework.stereotype.Service;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.InputStream;
- import java.util.UUID;
- @Service
- public class OssServiceImpl implements OssService {
- //上传头像到oss
- @Override
- public String uploadFileAvatar(MultipartFile file) {
- // 工具类获取值
- String endpoint = ConstantPropertiesUtils.END_POIND;
- String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;
- String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;
- String bucketName = ConstantPropertiesUtils.BUCKET_NAME;
- try {
- // 创建OSS实例。
- OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
- //获取上传文件输入流
- InputStream inputStream = file.getInputStream();
- //获取文件名称
- String fileName = file.getOriginalFilename();
- //1 在文件名称里面添加随机唯一的值
- String uuid = UUID.randomUUID().toString().replaceAll("-","");
- // yuy76t5rew01.jpg
- fileName = uuid+fileName;
- //2 把文件按照日期进行分类
- //获取当前日期
- // 2019/11/12
- String datePath = new DateTime().toString("yyyy/MM/dd");
- //拼接
- // 2019/11/12/ewtqr313401.jpg
- fileName = datePath+"/"+fileName;
- //调用oss方法实现上传
- //第一个参数 Bucket名称
- //第二个参数 上传到oss文件路径和文件名称 aa/bb/1.jpg
- //第三个参数 上传文件输入流
- ossClient.putObject(bucketName,fileName , inputStream);
- // 关闭OSSClient。
- ossClient.shutdown();
- //把上传之后文件路径返回
- //需要把上传到阿里云oss路径手动拼接出来
- // https://edu-guli-1010.oss-cn-beijing.aliyuncs.com/01.jpg
- String url = "https://"+bucketName+"."+endpoint+"/"+fileName;
- return url;
- }catch(Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- }
复制代码 controller:将上传返回到前端
- package com.csdn.oss.controller;
- import com.csdn.commonutils.R;
- import com.csdn.oss.service.OssService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.CrossOrigin;
- import org.springframework.web.bind.annotation.PostMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
- import org.springframework.web.multipart.MultipartFile;
- @RestController
- @RequestMapping("/eduoss/fileoss")
- @CrossOrigin
- public class OssController {
- @Autowired
- private OssService ossService;
- //上传头像的方法
- @PostMapping
- public R uploadOssFile(MultipartFile file) {
- //获取上传文件 MultipartFile
- //返回上传到oss的路径
- String url = ossService.uploadFileAvatar(file);
- return R.ok().data("url",url);
- }
- }
复制代码 测试运行代码:
打开swagger-ui进行测试:swagger中上传文件,然后去OOS上检察
阿里云OOS安全问题:阿里云对象存储OSS原生DDoS防护能力-高防OSS功能
高防OSS,顾名思义,就是原生具有高防能力的OSS实例,高防OSS是针对OSSbucket在遭受大流量DDoS攻击后导致服务不可用的情况下,推出的付费服务,用户可通过配置高防OSS,将针对相干Bucket的攻击流量引流到高防IP,确保源Bucket的稳定可靠。
随着企业数字化转型的不停深入,更多的业务上云,更大量的业务数据产生和利用,为了更好更优的提升服务质量。更多的行业采用内容即服务的架构,存储数据流直接面向用户和终端,在如许的大配景下,存储平台的可用性至关紧张。与此同时,DDoS攻击是近年来对企业业务危害最大的攻击本领之一。当企业遭受DDoS攻击时,大概会导致业务停止,进而导致企业的形象受损、客户流失、收益受损等,严峻影响企业业务的正常运营。为此,OSS深度集成阿里云DDoS高防产品,提供最高T级DDoS防护能力、百万QPS防护、秒级攻击切换能力,可有用抵御SYNFlood、ACKFlood、ICMPFlood、UDPFlood、NTPFlood、SSDPFlood、DNSFlood、HTTPFlood等攻击。非常适用于业务经常遭恶意攻击影响服务质量的场景,实现安全防护。高防OSS作为OSS产品的一个功能,构建于OSS平台之上,提供一站式的OSS安全(防攻击)能力,旨在为用户云存储业务提供原生“安全防护”服务。用户在开通高防OSS后,在用户Bucket未受到攻击时,OSS尺度域名会被解析到原生防护IP上,维持正常的网络状态,确保业务的低时延;而当用户Bucket受到攻击时,相干的访问流量都将优先颠末高防机房,恶意攻击流量将在高防流量洗濯中心进行洗濯过滤,正常的访问流量通过端口协议转发的方式返回给OSS服务器,从而保障用户在受到攻击时能正常访问OSS。
1)摆设简便、方便易用、无感知(原生+高防双重防护)
用户只需要在OSS控制台上进行浅易的配置,就能享受DDoS防护能力。加入防护后,在没有攻击的时间段独享云原生防护实例,维持正常状态的网络性能,确保业务无额外时延;在受到攻击时,OSS会主动将处于防护状态下的bucket通过高防资源池进行流量洗濯,从而达到主动切换的效果,保持网络服务可靠性。
2)T级防御能力
基于阿里云安全产品的DDoS高防能力,可以提供高达T级的防护能力,同时具备完善的四七层防御能力。在流量洗濯技术方面,分别针对网络流量型攻击和资源耗尽型DDoS攻击,通过主动优化防护算法和深度学习业务流量基线,达到精准识别攻击IP并主动过滤洗濯的目标。
3)DDoS防护引擎成熟度高
从应用与实践来看,阿里云高防引擎已经有上万企业用户在利用,同时也经受了双十一、世界杯直播等极限场景考验,积累了丰富的防护经验和大量的资源储备,应用广泛,可以确保为用户的业务保障极致的防攻击能力。从架构上老看,DDoS防护引擎采用高可用网络防护集群,制止单点故障和冗余,且处置惩罚性能支持弹性扩展。全主动检测和攻击策略匹配,提供及时防护,洗濯服务可用性达99.99%。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |