快速入门

  1. 案例描述
    图片上传
  2. 配置环境
    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                              http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.oss</groupId>
      <artifactId>oss-project01</artifactId>
      <version>1.0-SNAPSHOT</version>
    
      <properties>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
    
      <dependencies>
     <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <version>4.10</version>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>log4j</groupId>
       <artifactId>log4j</artifactId>
       <version>1.2.5</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.8.0</version>
     </dependency>
      </dependencies>
    
    </project>
  3. 图片上传代码实现

    package com.oss;
    
    import com.aliyun.oss.OSS;
    import com.aliyun.oss.OSSClientBuilder;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.InputStream;
    
    public class FileUpLoad {
      public static void main(String[] args) throws FileNotFoundException {
     // Endpoint以杭州为例,其它Region请按实际情况填写。
     //String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
     String endpoint = "http://oss-cn-beijing.aliyuncs.com";
     // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践 创建并使用RAM子账号进行API访问或日常运维,
     String accessKeyId = "LTAI4GD1XcQgrQuvkKnZYhhA";
     String accessKeySecret = "1n2i3VNxd5gWr9YPYuJbVMophsXUQr";
    
     // 创建OSSClient实例。
     OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
    
     // 上传文件流。
     InputStream inputStream = new FileInputStream(new File("src\\main\\resources\\1.png"));
     ossClient.putObject("test-imgs", "1.png", inputStream);
    
     // 关闭OSSClient。
     ossClient.shutdown();
      }
    }

    java API操作

  4. 需求描述
    1)创建Bucket
    2)把字符串存入OSS,Object的名称为firstKey
    3)下载文件
    4)文件存储入OSS
    5)查看Bucket中的Object
    6)删除Object
  5. 功能实现
    pom.xml 同上一个例子
    代码实现

    package com.oss;
    
    import java.io.*;
    import java.util.List;
    import java.util.Properties;
    
    import com.aliyun.oss.ClientException;
    import com.aliyun.oss.OSS;
    import com.aliyun.oss.OSSClientBuilder;
    import com.aliyun.oss.OSSException;
    import com.aliyun.oss.model.BucketInfo;
    import com.aliyun.oss.model.OSSObject;
    import com.aliyun.oss.model.OSSObjectSummary;
    import com.aliyun.oss.model.ObjectListing;
    
    import org.apache.log4j.Logger;
    import org.apache.log4j.PropertyConfigurator;
    
    public class HelloOSS {
      static Logger logger = Logger.getLogger(HelloOSS.class);
    
      // endpoint是访问OSS的域名。如果您已经在OSS的控制台上 创建了Bucket,请在控制台上查看域名。
      // 如果您还没有创建Bucket,endpoint选择请参看文档中心的“开发人员指南 > 基本概念 > 访问域名”,
      // 链接地址是:https://help.aliyun.com/document_detail/oss/user_guide/oss_concept/endpoint.html?spm=5176.docoss/user_guide/endpoint_region
      // endpoint的格式形如“http://oss-cn-hangzhou.aliyuncs.com/”,注意http://后不带bucket名称,
      // 比如“http://bucket-name.oss-cn-hangzhou.aliyuncs.com”,是错误的endpoint,请去掉其中的“bucket-name”。
      private static String endpoint = "http://oss-cn-beijing.aliyuncs.com";
      // accessKeyId和accessKeySecret是OSS的访问密钥,您可以在控制台上创建和查看,
      // 创建和查看访问密钥的链接地址是:https://ak-console.aliyun.com/#/。
      // 注意:accessKeyId和accessKeySecret前后都没有空格,从控制台复制时请检查并去除多余的空格。
      private static String accessKeyId = "LTAI4GD1XcQgrQuvkKnZYhhA";
      private static String accessKeySecret = "1n2i3VNxd5gWr9YPYuJbVMophsXUQr";
      // Bucket用来管理所存储Object的存储空间,详细描述请参看“开发人员指南 > 基本概念 > OSS基本概念介绍”。
      // Bucket命名规范如下:只能包括小写字母,数字和短横线(-),必须以小写字母或者数字开头,长度必须在3-63字节之间。
      private static String bucketName = "test-imgs";
      // Object是OSS存储数据的基本单元,称为OSS的对象,也被称为OSS的文件。详细描述请参看“开发人员指南 > 基本概念 > OSS基本概念介绍”。
      // Object命名规范如下:使用UTF-8编码,长度必须在1-1023字节之间,不能以“/”或者“\”字符开头。
      private static String firstKey = "my-first-key";
    
      public static void main(String[] args) throws IOException {
     // 日志配置,OSS Java SDK使用log4j记录错误信息。示例程序会在工程目录下生成“ossdemo.log”日志文件,默认日志级别是INFO。
     // 日志的配置文件是“conf/log4j.properties”,如果您不需要日志,可以没有日志配置文件和下面的日志配置。
     // PropertyConfigurator.configure("conf/log4j.properties");
     InputStream in = HelloOSS.class.getClassLoader().getResourceAsStream("log4j.properties");
     Properties properties = new Properties();
     properties.load(in);
     PropertyConfigurator.configure(properties);
     logger.info("Started");
    
     // 生成OSSClient,您可以指定一些参数,详见“SDK手册 > Java-SDK > 初始化”,
     // 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/javasdk/init.html?spm=5176.docoss/sdk/java-sdk/get-start
     OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
     try {
       // 判断Bucket是否存在。详细请参看“SDK手册 > Java-SDK > 管理Bucket”。
       // 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/javasdk/
       manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
       if (ossClient.doesBucketExist(bucketName)) {
         System.out.println("您已经创建Bucket:" + bucketName + "。");
       } else {
         System.out.println("您的Bucket不存在,创建Bucket:" + bucketName + "。");
         // 创建Bucket。详细请参看“SDK手册 > Java-SDK > 管理Bucket”。
         // 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
         ossClient.createBucket(bucketName);
       }
    
       // 查看Bucket信息。详细请参看“SDK手册 > Java-SDK > 管理Bucket”。
       // 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/javasdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
       BucketInfo info = ossClient.getBucketInfo(bucketName);
       System.out.println("Bucket " + bucketName + "的信息如下:");
       System.out.println("\t数据中心:" + info.getBucket().getLocation());
       System.out.println("\t创建时间:" +
       info.getBucket().getCreationDate());
       System.out.println("\t用户标志:" + info.getBucket().getOwner());
    
       // 把字符串存入OSS,Object的名称为firstKey。详细请参看“SDK手册 > Java-SDK > 上传文件”。
       // 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/javasdk/upload_object.html?spm=5176.docoss/user_guide/upload_object
       InputStream is = new ByteArrayInputStream("Hello OSS".getBytes());
       ossClient.putObject(bucketName, firstKey, is);
       System.out.println("Object:" + firstKey + "存入OSS成功。");
       // 下载文件。详细请参看“SDK手册 > Java-SDK > 下载文件”。
       // 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/javasdk/download_object.html?spm=5176.docoss/sdk/java-sdk/manage_object
       OSSObject ossObject = ossClient.getObject(bucketName, firstKey);
       InputStream inputStream = ossObject.getObjectContent();
       StringBuilder objectContent = new StringBuilder();
       BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
       while (true) {
         String line = reader.readLine();
         if (line == null)
           break;
         objectContent.append(line);
       }
       inputStream.close();
       System.out.println("Object:" + firstKey + "的内容是:" + objectContent);
    
       // 文件存储入OSS,Object的名称为fileKey。详细请参看“SDK手册 > Java-SDK > 上传文件”。
       // 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/javasdk/upload_object.html?spm=5176.docoss/user_guide/upload_object
       String fileKey = "README.md";
       ossClient.putObject(bucketName, fileKey, new File("src\\main\\resources\\README.md"));
       System.out.println("Object:" + fileKey + "存入OSS成功。");
    
       // 查看Bucket中的Object。详细请参看“SDK手册 > Java-SDK > 管理文件”。
       // 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/javasdk/manage_object.html?spm=5176.docoss/sdk/java-sdk/manage_bucket
       ObjectListing objectListing = ossClient.listObjects(bucketName);
       List<OSSObjectSummary> objectSummary = objectListing.getObjectSummaries();
       System.out.println("您有以下Object:");
       for (OSSObjectSummary object : objectSummary) {
         System.out.println("\t" + object.getKey());
       }
    
       // 删除Object。详细请参看“SDK手册 > Java-SDK > 管理文件”。
       // 链接地址是:https://help.aliyun.com/document_detail/oss/sdk/javasdk/manage_object.html?spm=5176.docoss/sdk/java-sdk/manage_bucket
       ossClient.deleteObject(bucketName, firstKey);
       System.out.println("删除Object:" + firstKey + "成功。");
       ossClient.deleteObject(bucketName, fileKey);
       System.out.println("删除Object:" + fileKey + "成功。");
     } catch (OSSException oe) {
       oe.printStackTrace();
     } catch (ClientException ce) {
       ce.printStackTrace();
     } catch (Exception e) {
       e.printStackTrace();
     } finally {
       ossClient.shutdown();
     }
     logger.info("Completed");
      }
    }

    log4j.properties

    log4j.rootLogger=INFO, RFA
    
    ossdemo.log.dir=.
    ossdemo.log.file=oss-demo.log
    
    # Logging Threshold
    log4j.threshold=ALL
    
    # Null Appender
    log4j.appender.NullAppender=org.apache.log4j.varia.NullAppender
    
    #
    # Rolling File Appender - cap space usage at 5gb.
    #
    ossdemo.log.maxfilesize=256MB
    ossdemo.log.maxbackupindex=20
    log4j.appender.RFA=org.apache.log4j.RollingFileAppender
    log4j.appender.RFA.File=${ossdemo.log.dir}/${ossdemo.log.file}
    
    log4j.appender.RFA.MaxFileSize=${ossdemo.log.maxfilesize}
    log4j.appender.RFA.MaxBackupIndex=${ossdemo.log.maxbackupindex}
    
    log4j.appender.RFA.layout=org.apache.log4j.PatternLayout
    
    # Pattern format: Date LogLevel LoggerName LogMessage
    log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
    # Debugging Pattern format
    #log4j.appender.RFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
    #
    # Daily Rolling File Appender
    #
    
    log4j.appender.DRFA=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.DRFA.File=${ossdemo.log.dir}/${ossdemo.log.file}
    
    # Rollver at midnight
    log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
    
    # 30-day backup
    #log4j.appender.DRFA.MaxBackupIndex=30
    log4j.appender.DRFA.layout=org.apache.log4j.PatternLayout
    
    # Pattern format: Date LogLevel LoggerName LogMessage
    log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %p %c: %m%n
    # Debugging Pattern format
    #log4j.appender.DRFA.layout.ConversionPattern=%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n
    #
    # console
    # Add "console" to rootlogger above if you want to use this
    #
    
    log4j.appender.console=org.apache.log4j.ConsoleAppender
    log4j.appender.console.target=System.err
    log4j.appender.console.layout=org.apache.log4j.PatternLayout
    log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{2}:%m%n

    image.png

    SpringBoot整合OSS上传

  6. 需求描述
    使用SpringBoot完成上传图片
  7. 配置文件
    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                              http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
    
      <groupId>com.oss</groupId>
      <artifactId>oss-project02</artifactId>
      <version>1.0-SNAPSHOT</version>
    
      <!--spring boot的支持-->
      <parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.1.0.RELEASE</version>
      </parent>
    
      <dependencies>
     <!--springboot 测试支持-->
     <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-test</artifactId>
       <scope>test</scope>
     </dependency>
     <dependency>
       <groupId>com.aliyun.oss</groupId>
       <artifactId>aliyun-sdk-oss</artifactId>
       <version>2.8.3</version>
     </dependency>
     <dependency>
       <groupId>org.apache.commons</groupId>
       <artifactId>commons-lang3</artifactId>
       <version>3.7</version>
     </dependency>
     <dependency>
       <groupId>org.projectlombok</groupId>
       <artifactId>lombok</artifactId>
       <version>1.18.4</version>
     </dependency>
     <dependency>
       <groupId>joda-time</groupId>
       <artifactId>joda-time</artifactId>
       <version>2.9.9</version>
     </dependency>
     <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-web</artifactId>
     </dependency>
      </dependencies>
    </project>

    application.properties

    # Spring boot application
    #server.servlet.context-path=/oss-server
    server.port = 8999
    #logging.level.root=DEBUG

    aliyun.properties

    aliyun.endpoint=http://oss-cn-beijing.aliyuncs.com
    aliyun.accessKeyId=LTAI4GD1XcQgrQuvkKnZYhhA
    aliyun.accessKeySecret=1n2i3VNxd5gWr9YPYuJbVMophsXUQr
    aliyun.bucketName=test-imgs
    aliyun.urlPrefix=https://test-imgs.oss-cn-beijing.aliyuncs.com/
  8. 编码实现
    AliyunConfig

    package com.oss.config;
    import com.aliyun.oss.OSSClient;
    import lombok.Data;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.context.annotation.PropertySource;
    
    @Configuration
    @PropertySource("classpath:aliyun.properties")
    @ConfigurationProperties(prefix = "aliyun")
    @Data
    public class AliyunConfig {
    
      private String endpoint;
      private String accessKeyId;
      private String accessKeySecret;
      private String bucketName;
      private String urlPrefix;
    
      @Bean
      public OSSClient oSSClient() {
     return new OSSClient(endpoint, accessKeyId, accessKeySecret);
      }
    }

    实体对象

    package com.oss.bean;
    import lombok.Data;
    
    @Data
    public class UpLoadResult {
    
      // 文件唯一标识
      private String uid;
      // 文件名
      private String name;
      // 状态有:uploading done error removed
      private String status;
      // 服务端响应内容,如:'{"status": "success"}'
      private String response;
    
    }

    FileUpLoadService

    package com.oss.service;
    
    import com.aliyun.oss.OSSClient;
    import com.oss.bean.UpLoadResult;
    import com.oss.config.AliyunConfig;
    import org.apache.commons.lang3.RandomUtils;
    import org.apache.commons.lang3.StringUtils;
    import org.joda.time.DateTime;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import org.springframework.web.multipart.MultipartFile;
    
    import java.io.ByteArrayInputStream;
    import java.io.IOException;
    
    @Service
    public class FileUpLoadService {
    
      @Autowired
      private AliyunConfig aliyunConfig;
    
      @Autowired
      private OSSClient ossClient;
    
      // 允许上传的格式
      private static final String[] IMAGE_TYPE = new String[]{".bmp", ".jpg", ".jpeg", ".gif", ".png"};
    
      public UpLoadResult upload(MultipartFile uploadFile) {
     // 校验图片格式
     boolean isLegal = false;
     for (String type : IMAGE_TYPE) {
       if (StringUtils.endsWithIgnoreCase(uploadFile.getOriginalFilename(), type)) {
         isLegal = true;
         break;
       }
     }
    
     UpLoadResult uploadResult = new UpLoadResult();
     if (!isLegal) {
       uploadResult.setStatus("error");
       return uploadResult;
     }
    
     String fileName = uploadFile.getOriginalFilename();
     String filePath = getFilePath(fileName);
    
     try {
       ossClient.putObject(aliyunConfig.getBucketName(),filePath, new ByteArrayInputStream(uploadFile.getBytes()));
     } catch (IOException e) {
       e.printStackTrace();
       //上传失败
       uploadResult.setStatus("error");
       return uploadResult;
     }
     uploadResult.setStatus("done");
     uploadResult.setName(this.aliyunConfig.getUrlPrefix() + filePath);
     uploadResult.setUid(String.valueOf(System.currentTimeMillis()));
     return uploadResult;
      }
    
      private String getFilePath(String sourceFileName) {
     DateTime dateTime = new DateTime();
     return "images/" + dateTime.toString("yyyy") + "/" + dateTime.toString("MM") + "/" + dateTime.toString("dd") + "/" + UUID.randomUUID().toString() + "." + StringUtils.substringAfterLast(sourceFileName, ".");
      }
    }

    UpLoadController 控制器

    package com.oss.controller;
    
    import com.oss.bean.UpLoadResult;
    import com.oss.service.FileUpLoadService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.multipart.MultipartFile;
    
    @RequestMapping("/pic")
    @Controller
    public class UpLoadController {
    
      @Autowired
      private FileUpLoadService fileUpLoadService;
    
      @PostMapping("/upload")
      @ResponseBody
      public UpLoadResult upload(@RequestParam("file") MultipartFile multipartFile) {
     return this.fileUpLoadService.upload(multipartFile);
      }
    }

    ApplicationBoot 启动引导

    package com.oss;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class ApplicationBoot {
    
      public static void main(String[] args) {
     SpringApplication.run(ApplicationBoot.class, args);
      }
    }
  9. 测试
    image.png
    image.png

    数据处理

    介绍

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

  10. 阿里云OSS原生处理服务
    阿里云OSS原生处理服务包括图片处理和视频截帧,其中图片处理包括图片的缩略、剪裁、参数调节等。 OSS原生处理服务无需开通,默认集成在OSS中,创建完Bucket后即可使用。产生的数据处理费用直接在OSS上结算。
  11. 智能媒体管理服务
    阿里云OSS与智能媒体管理(IMM)深度结合,支持文档预览、文档格式转换、人脸识别、图片分析、二维码识别等丰富的数据分析处理操作。

    图片处理

    本文档介绍如何快速使用OSS图片处理服务。您可以通过三种方式处理图片:为图片URL添加参数进行单次处理、使用图片样式对不同图片进行相同处理,或使用OSS SDK对图片进行处理。

处理操作说明文档
图片缩放对图片进行等比缩放或固定宽高缩放。图片缩放
图片裁剪使用内切圆裁剪图片。内切圆
通过指定范围的方式裁剪图片。 自定义裁剪
将图片在x或y轴上等分为多个区域,然后取出指定区域。 索引切割
使用圆角矩形裁剪图片。 圆角矩形
图片旋转设置是否对图片进行自动旋转自适应方向
对图片进行指定角度的顺时针旋转。 旋转
图片效果为图片添加模糊效果。模糊效果
调整图片的亮度。 亮度
对图片进行锐化。 锐化
调整图片的对比度。 对比度
格式转换将图片转换为指定的格式。格式转换
可以对保存为JPG或WebP格式的图片进行图片质量转换。 质量变换
指定图片的呈现方式。 渐进显示
获取图片信息获取图片的平均色调。获取图片主色调
获取图片的宽度、长度、文件大小、格式、EXIF信息等。 获取信息
图片水印为图片添加图片、文字或混合水印。图片水印

视频截祯

注意事项

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

参数说明
操作名称:snapshot

参数描述取值范围
t指定截图时间。[0,视频时长] 单位:ms
w指定截图宽度,如果指定为0,则自动计算。[0,视频宽度] 单位:像素(px)
h指定截图高度,如果指定为0,则自动计算;如果w和h都为0,则输出为原视频宽高。[0,视频高度] 单位:像素(px)
m指定截图模式,不指定则为默认模式,根据时间精确截图。如果指定为fast,则截取该时间点之前的最近的一个关键帧。枚举值:fast
f指定输出图片的格式。枚举值:jpg、png
ar指定是否根据视频信息自动旋转图片。如果指定为auto,则会在截图生成之后根据视频旋转信息进行自动旋转。枚举值:auto

https://help.aliyun.com/document_detail/64555.html

音视频处理

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

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

音视频转码

智能媒体管理(IMM)

阿里云 OSS 能够与智能媒体管理(IMM)深度结合,支持文档预览、文档格式转换、人脸识别、图片分析、二维码识别等丰富的数据分析处理操作。下面介绍如何在 OSS 控制台中使用 IMM 的功能。
前提条件

  • 要在 OSS 中使用 IMM 功能,您需要开通 IMM 服务并进行授权。有关开通服务及授权的详细步骤,请参见开通产品创建项目中的前提条件部分。
  • 如果您使用 RAM 子账号进行本文中的操作,需要同时开通对应存储空间的访问权限和 AliyunIMMFullAccess 权限。
  • 创建 IMM Project 及使用 IMM 功能会产生一定的费用,如果您不需要使用 IMM 的功能,请及时解绑 IMM。详细费用请参见计费说明

https://test-imgs.oss-cn-beijing.aliyuncs.com/1.png?x-ossprocess=imm/detecface
https://test-imgs.oss-cn-beijing.aliyuncs.com/1.png?x-ossprocess=imm/tagimage

CDN 加速 (阿里 网宿 微软 亚马逊 akmai)

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

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

https://www.aliyun.com/product/cdn

标签: 实战, OSS

评论已关闭