干翻全岛蛙蛙 发表于 2024-6-12 13:28:25

阿里云OOS储存

OOS:阿里云对象存储OOS是一款海量、安全、低成本、高可靠的云存储服务,提供99.99%的数据持久性和可用性,多种存储范例供选择,全面优化存储成本,非常得当存储非布局化数据,例如视频,图形,日志,文本文件以及各种app应用,多终端同步软件,网盘下载站的文件等,单个文件的巨细从1字节到18.8TB,可以存储的个数无限制。
 
1、注册登录,https://www.aliyun.com/https://csdnimg.cn/release/blog_editor_html/release2.2.0/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=M85Bhttps://www.aliyun.com/
2、登录成功后(最好支付宝登陆)将鼠标悬停在主界面导航栏中的产品地区位置并进入对象存储OSS;
3、开通云存储,实名认证,开通OOS。
https://img-blog.csdnimg.cn/5ebec43efaed49e380c5804cb191671a.png
4、点击管理控制台进入,进入对象存储主界面后会看到概览中有一项Bucket列表,这就是用于创建云存储文件夹的地方;根据下图的流程会进入到一个创建Bucket添加信息栏中;
【Bucket名称】:用户自定义名称 【地区】:自定义选择 【存储范例】:尺度存储 【同城冗余存储】:关闭「收费」 【版本控制】:不开通「收费」 【读写权限】:公共读 【服务端加密方式】:无 【及时日志查询】:不开通「收费」 【定时备份】:不开通「收费」
https://img-blog.csdnimg.cn/ae4fe28e500441c48baec9cec453d36d.png

 5、进入设置成功的存储空间内需要生存Bucket 域名;在oss主界面中进入Access Key并检察生存,后期会在xml配置中利用,留意Bucket地址和Access Key。
https://img-blog.csdnimg.cn/76efe3a639684ac7b6c217c8c6efdeba.png
 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);
    }
}

测试运行代码:
https://img-blog.csdnimg.cn/4881bc9d935e4613b246094847ff6bcb.png

打开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。
https://img-blog.csdnimg.cn/img_convert/800ab8562f8cfd48eb0920aa0199fd0c.png


1)摆设简便、方便易用、无感知(原生+高防双重防护)
用户只需要在OSS控制台上进行浅易的配置,就能享受DDoS防护能力。加入防护后,在没有攻击的时间段独享云原生防护实例,维持正常状态的网络性能,确保业务无额外时延;在受到攻击时,OSS会主动将处于防护状态下的bucket通过高防资源池进行流量洗濯,从而达到主动切换的效果,保持网络服务可靠性。

2)T级防御能力
基于阿里云安全产品的DDoS高防能力,可以提供高达T级的防护能力,同时具备完善的四七层防御能力。在流量洗濯技术方面,分别针对网络流量型攻击和资源耗尽型DDoS攻击,通过主动优化防护算法和深度学习业务流量基线,达到精准识别攻击IP并主动过滤洗濯的目标。

3)DDoS防护引擎成熟度高
从应用与实践来看,阿里云高防引擎已经有上万企业用户在利用,同时也经受了双十一、世界杯直播等极限场景考验,积累了丰富的防护经验和大量的资源储备,应用广泛,可以确保为用户的业务保障极致的防攻击能力。从架构上老看,DDoS防护引擎采用高可用网络防护集群,制止单点故障和冗余,且处置惩罚性能支持弹性扩展。全主动检测和攻击策略匹配,提供及时防护,洗濯服务可用性达99.99%。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 阿里云OOS储存