ToB企服应用市场:ToB评测及商务社交产业平台

标题: 阿里云OOS储存 [打印本页]

作者: 干翻全岛蛙蛙    时间: 2024-6-12 13:28
标题: 阿里云OOS储存
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文件引入依赖:
  1. <!--阿里云oss依赖-->
  2.         <dependency>
  3.             <groupId>com.aliyun.oss</groupId>
  4.             <artifactId>aliyun-sdk-oss</artifactId>
  5.         </dependency>
复制代码
 application.properties文件中,添加存放云存储的Bucket地址及AccessKey配置信息
  1. # 端口号
  2. server.port=8001
  3. spring.application.name=yun-upload
  4. # 环境地址
  5. spring.profiles.active=dev
  6. # 阿里云云存储OSS配置信息
  7. # Bucket地址
  8. aliyun.oss.file.endpoint=自定义
  9. # Access Key
  10. aliyun.oss.file.keyid=自定义
  11. aliyun.oss.file.keysecret=自定义
  12. # Bucket名称
  13. aliyun.oss.file.bucketname=自定义
复制代码
utils类:用于读取xml配置信息,将配置信息转换成工具类进行调用;
  1. package com.csdn.oss.utils;
  2. import org.springframework.beans.factory.InitializingBean;
  3. import org.springframework.beans.factory.annotation.Value;
  4. import org.springframework.stereotype.Component;
  5. //当项目已启动,spring接口,spring加载之后,执行接口一个方法
  6. @Component
  7. public class ConstantPropertiesUtils implements InitializingBean {
  8.     //读取配置文件内容
  9.     @Value("${aliyun.oss.file.endpoint}")
  10.     private String endpoint;
  11.     @Value("${aliyun.oss.file.keyid}")
  12.     private String keyId;
  13.     @Value("${aliyun.oss.file.keysecret}")
  14.     private String keySecret;
  15.     @Value("${aliyun.oss.file.bucketname}")
  16.     private String bucketName;
  17.     //定义公开静态常量
  18.     public static String END_POIND;
  19.     public static String ACCESS_KEY_ID;
  20.     public static String ACCESS_KEY_SECRET;
  21.     public static String BUCKET_NAME;
  22.     @Override
  23.     public void afterPropertiesSet() throws Exception {
  24.         END_POIND = endpoint;
  25.         ACCESS_KEY_ID = keyId;
  26.         ACCESS_KEY_SECRET = keySecret;
  27.         BUCKET_NAME = bucketName;
  28.     }
  29. }
复制代码
service上传接口:
  1. package com.csdn.oss.service;
  2. import org.springframework.web.multipart.MultipartFile;
  3. public interface OssService {
  4.     //上传头像到oss
  5.     String uploadFileAvatar(MultipartFile file);
  6. }
复制代码
serviceImpl:用于获取上传文件进行判断处置惩罚;
  1. package com.csdn.oss.service.impl;
  2. import com.aliyun.oss.OSS;
  3. import com.aliyun.oss.OSSClientBuilder;
  4. import com.csdn.oss.service.OssService;
  5. import com.csdn.oss.utils.ConstantPropertiesUtils;
  6. import org.joda.time.DateTime;
  7. import org.springframework.stereotype.Service;
  8. import org.springframework.web.multipart.MultipartFile;
  9. import java.io.InputStream;
  10. import java.util.UUID;
  11. @Service
  12. public class OssServiceImpl implements OssService {
  13.     //上传头像到oss
  14.     @Override
  15.     public String uploadFileAvatar(MultipartFile file) {
  16.         // 工具类获取值
  17.         String endpoint = ConstantPropertiesUtils.END_POIND;
  18.         String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;
  19.         String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;
  20.         String bucketName = ConstantPropertiesUtils.BUCKET_NAME;
  21.         try {
  22.             // 创建OSS实例。
  23.                        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
  24.             //获取上传文件输入流
  25.             InputStream inputStream = file.getInputStream();
  26.             //获取文件名称
  27.             String fileName = file.getOriginalFilename();
  28.             //1 在文件名称里面添加随机唯一的值
  29.             String uuid = UUID.randomUUID().toString().replaceAll("-","");
  30.             // yuy76t5rew01.jpg
  31.             fileName = uuid+fileName;
  32.             //2 把文件按照日期进行分类
  33.             //获取当前日期
  34.             //   2019/11/12
  35.             String datePath = new DateTime().toString("yyyy/MM/dd");
  36.             //拼接
  37.             //  2019/11/12/ewtqr313401.jpg
  38.             fileName = datePath+"/"+fileName;
  39.             //调用oss方法实现上传
  40.             //第一个参数  Bucket名称
  41.             //第二个参数  上传到oss文件路径和文件名称   aa/bb/1.jpg
  42.             //第三个参数  上传文件输入流
  43.             ossClient.putObject(bucketName,fileName , inputStream);
  44.             // 关闭OSSClient。
  45.             ossClient.shutdown();
  46.             //把上传之后文件路径返回
  47.             //需要把上传到阿里云oss路径手动拼接出来
  48.             //  https://edu-guli-1010.oss-cn-beijing.aliyuncs.com/01.jpg
  49.             String url = "https://"+bucketName+"."+endpoint+"/"+fileName;
  50.             return url;
  51.         }catch(Exception e) {
  52.             e.printStackTrace();
  53.             return null;
  54.         }
  55.     }
  56. }
复制代码
controller:将上传返回到前端
  1. package com.csdn.oss.controller;
  2. import com.csdn.commonutils.R;
  3. import com.csdn.oss.service.OssService;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.web.bind.annotation.CrossOrigin;
  6. import org.springframework.web.bind.annotation.PostMapping;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RestController;
  9. import org.springframework.web.multipart.MultipartFile;
  10. @RestController
  11. @RequestMapping("/eduoss/fileoss")
  12. @CrossOrigin
  13. public class OssController {
  14.     @Autowired
  15.     private OssService ossService;
  16.     //上传头像的方法
  17.     @PostMapping
  18.     public R uploadOssFile(MultipartFile file) {
  19.         //获取上传文件  MultipartFile
  20.         //返回上传到oss的路径
  21.         String url = ossService.uploadFileAvatar(file);
  22.         return R.ok().data("url",url);
  23.     }
  24. }
复制代码
测试运行代码:


打开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企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4