# OSS代码实战


<!--more-->


代码示例: [oss-demo]( https://gitee.com/ixinglan/oss-demo.git)

阿里云官网也有各种代码示例:[aliyun-demo](https://promotion.aliyun.com/ntms/act/ossdoclist.html?spm=5176.8465980.entries.dsdk.4e701450CmlsSg)

## 1. java访问

- 依赖

  ```xml
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.2</version>
      <scope>test</scope>
    </dependency>
  
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
  
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.2</version>
    </dependency>
  
    <dependency>
      <groupId>com.aliyun.oss</groupId>
      <artifactId>aliyun-sdk-oss</artifactId>
      <version>3.10.2</version>
    </dependency>
  </dependencies>
  ```

- 上传下载等

  见示例代码

## 2. springboot 整合

- 引入依赖

- 配置文件 

  application.yml

  ```yaml
  server:
    port: 9999
  
  aliyun:
    endpoint: https://yourEndpoint
    accessKeyId: yourId
    accessKeySecret: yourSecret
    bucketName: yourBucket
  ```

- 创建 AliyunConfig

  ```java
  @Configuration
  @ConfigurationProperties(prefix = "aliyun")
  @Data
  public class AliyunConfig {
      private String endpoint;
      private String accessKeyId;
      private String accessKeySecret;
      private String bucketName;
  
      // 生成OSSClient
      @Bean
      public OSS ossClient() {
          return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
      }
  }
  ```

- 业务代码实现

  见示例工程代码即可

## 3. 数据处理

### 3.1 简介

阿里云OSS为在云上的数据打通了一个处理与使用的快速通道。通过简单的RESTful接口，可以在任何时间、任何地点、任何互联网设备上对存储在OSS中的数据进行分析处理。

数据处理包含以下两种：

- 阿里云OSS原生处理服务

  阿里云OSS原生处理服务包括图片处理和视频截帧，其中图片处理包括图片的缩略、剪裁、参数调节等。OSS原生处理服务无需开通，默认集成在OSS中，创建完Bucket后即可使用。产生的数据处理费用直接在OSS上结算。

- 智能媒体管理服务

  阿里云OSS与智能媒体管理（IMM）深度结合，支持文档预览、文档格式转换、人脸识别、图片分析、二维码识别等丰富的数据分析处理操作。

### 3.2 图片处理

包含图片缩放, 图片裁剪, 图片旋转, 图片效果(如模糊), 格式转换.................

### 3.3 视频截祯

- 当前仅支持对视频编码格式为H264的视频文件进行视频截帧。
- OSS当前没有默认保存视频截帧的操作，视频截帧的图片需手动下载到本地。

### 3.4 音频处理

存储在OSS上的多媒体音视频数据，可以通过经济、弹性、高扩展的阿里云媒体转码服务，转换成适合在移动端、PC、TV上播放的格式。

- 转换媒体格式，支持多平台播放。
- 保证相同画质质量的前提下，调整视频码率、提高视频压缩效率、减小文件体积，从而减少播放卡顿并节省存储空间和流量费用。
- 添加水印logo，突出品牌，增加产品识别度。
- 对视频进行剪辑/拼接等二次创作。
- 针对画质较差的视频，去除画面中的毛刺、马赛克等，修复为高清晰版本。

### 3.5 智能媒体管理 IMM

阿里云OSS能够与智能媒体管理（IMM）深度结合，支持文档预览、文档格式转换、人脸识别、图片分析、二维码识别等丰富的数据分析处理操作。

- 要在OSS中使用IMM功能，您需要开通IMM服务并进行授权。
- 如果您使用RAM子账号进行本文中的操作，需要同时开通对应存储空间的访问权限和Aliyun IMM Full Access权限。
- 创建IMM Project及使用IMM功能会产生一定的费用，如果您不需要使用IMM的功能，请及时解绑IMM。详细费用请参见计费说明。

## 4. CDN加速

对象存储OSS与阿里云CDN服务结合，可优化静态热点文件下载加速的场景（即同一地区大量用户同时下载同一个静态文件的场景）。您可以将OSS的存储空间（Bucket）作为源站，利用阿里云CDN将源内容发布到边缘节点。当大量终端用户重复访问同一文件时，可以直接从边缘节点获取已缓存的数据，提高访问的响应速度。

![示意图](https://img.zhaojq.top/20260727091651282.png "示意图")

适用场景:

- 静态文件访问量大，服务器负载高，I/O问题导致用户访问卡顿。
- 静态文件数量大，服务器存储空间不够。
- 静态文件用户访问分布在各地，同一个地区客户，会成千上万次重复下载同一文件。
























