目录

一.简介和准备工作

1.1什么是oss

1.2准备环境

1.2.1 jar引入

  1.2.2 yml配置文件配置

二.代码演示

2.1.上传本地文件到oss

2.2创建工具类上传

三.总结

3.1 oss优点

 3.2 oss缺点


一.简介和准备工作

1.1什么是oss

   OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高可靠的云存储服务。它是面向Internet应用设计的分布式存储服务,支持RESTful API,可以在任何时间、任何地点、任何互联网设备上进行上传、下载、管理和分享数据

1.2准备环境

1.2.1 jar引入

准备新上传文件的开发环境--安装sdk, 这里就不详细介绍sdk安装了, 相信Java的小伙办都知道如何安装.

在Java项目中使用OSS,需要通过Maven引入OSS SDK。

以下是使用Maven添加依赖的示例:

<dependencies>
    <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
        <version>LATEST</version>
    </dependency>
</dependencies>
  1.2.2 yml配置文件配置
oss:
  host: http://xxxx.oss-cn-shenzhen.aliyuncs.com
  bucketName: xxxx-uxm
  endpoint: oss-cn-shenzhen.aliyuncs.com
  accessKeyId: xxxx6rZ7etOfxxx
  accessKeySecret: xxxxxxxxxLc8NUoTTrmxxxxxxxxx

二.代码演示

2.1.上传本地文件到oss

public static void uploadFileToOSS() {
    // Endpoint以"其他"为例,其它Region请按实际情况填写。
    String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
    // AccessKeyId和AccessKeySecret是OSS的访问密钥,可在阿里云控制台上创建和查看。
    String accessKeyId = "<yourAccessKeyId>";
    String accessKeySecret = "<yourAccessKeySecret>";
    String bucketName = "<yourBucketName>";
    String objectName = "<yourObjectName>";
    String filePath = "<yourLocalFilePath>";

    // 创建OSSClient实例。
    OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

    try {
        File file = new File(filePath);

        // 上传文件流。
        InputStream inputStream = new FileInputStream(file);
        ossClient.putObject(bucketName, objectName, inputStream);

        // 关闭OSSClient。
        ossClient.shutdown();

        System.out.println("文件上传成功!");

    } catch (Exception e) {
        e.printStackTrace();
    }
}

2.2创建工具类上传

工具类:


     * 上传文件
     * @param file
     * @return
     */
    public Object upload(MultipartFile file) {
        if (file.isEmpty()) {
            throw new ServiceException("上传文件不能为空");
        }
        if (!checkFileSize(file.getSize(), BaseConstant.LEN, BaseConstant.UNIT_M)) {
            throw new ServiceException("上传文件大小不能超过10M");
        }
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        // 上传文件流。
        // 保存路径,注意:这里不要以 / 或 \ 开头
        String path = new SimpleDateFormat("yyyyMMdd").format(new Date());
        String originalFilename = file.getOriginalFilename();
        String fileName = path + "/" + UUID.randomUUID().toString().replace("-", "") + originalFilename.substring(originalFilename.lastIndexOf("."));
        try {
            ossClient.putObject(bucketName, fileName, file.getInputStream());
        } catch (IOException e) {
            throw new ServiceException("上传失败" + e.getMessage());
        }
        // 关闭OSSClient。
        ossClient.shutdown();
        return host + "/" + fileName;
}

三.总结

3.1 oss优点

  1. 稳定可靠:对象存储具有多重冗余架构设计;且基于高可用架构设计,消除单节点故障,跨数据中心的副本冗余,能够保障服务的高可用性,确保数据业务的持续性;
  2. 安全合规:支持服务端加密、客户端加密、防盗链、IP黑白名单、细粒度权限管控、日志审计、WORM特性,并获得多项合规认证,满足企业数据安全与合规要求;

 3.2 oss缺点

oss法维护传统数据库。对象存储不能够按片段更改数据。只能修改整个对象,这在很大程度上会影响性能。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐