阿里云对象存储OSS与智能媒体管理(IMM)深度结合,支持文档预览、文档格式转换、人脸识别、图片分析、二维码识别等丰富的数据分析处理操作。本文介绍如何通过OSS使用IMM的相关功能。

前提条件

  • 已开通IMM服务并进行授权。开通服务及授权的详细步骤,请参见开通产品创建项目
  • 如果您使用RAM用户进行本文中的操作,需确保RAM用户拥有只读访问对象存储OSS的权限(AliyunOSSReadOnlyAccess)、管理智能媒体管理IMM的权限(AliyunIMMFullAccess)、oss:ProcessImm以及ram:GetRole的权限。

注意事项

  • 创建IMM Project及使用IMM功能会产生一定的费用。详细费用,请参见计费说明
  • 目前仅华北 2(北京)、华东 1(杭州)、华东 2(上海)、华南 1(深圳)、华北 3(张家口)、新加坡地域支持IMM。

步骤一:绑定IMM

使用OSS控制台

  1. 登录OSS管理控制台
  2. 单击Bucket列表,然后单击目标Bucket名称。
  3. 在左侧导航栏,选择数据处理与索引 > 智能媒体
  4. 根据数据处理的需要,在需要绑定的IMM功能右侧单击绑定

    IMM提供以下三个功能:

    • 文档预览:绑定该功能后,您可以对存储空间内的PPT、XLS、DOC、PDF等多种格式文档进行预览。功能的详细介绍,请参见文档预览
    • 人脸识别:绑定该功能后,您可以对存储空间内的图片进行检测,识别其中的人脸矩形框和属性。功能的详细介绍,请参见人脸识别
    • 图片识别:绑定该功能后,您可以对存储空间内的图片进行检测,识别其中的标签和置信度。功能的详细介绍,请参见图片识别
  5. 绑定智能媒体项目对话框的IMM配置栏,选择以下两种绑定方式:
    • 创建默认Project:输入Project的名称,系统会自动在存储空间所在的地域创建对应的IMM Project,并将其与当前存储空间绑定。
      project
    • 绑定已有Project:在下拉列表中选择需要绑定至存储空间的IMM Project。project
      注意 仅在存储空间所在的地域创建了对应功能的IMM Project的情况下,才能看到绑定已有Project的选项。关于创建IMM Project的具体操作,请参见创建项目

    您也可以在智能媒体标签页单击批量创建,然后在功能配置对话框中指定绑定项目名称,批量绑定多个IMM功能。

    feature

    通过这种方式只能绑定自动新建的IMM Project,无法绑定已有的IMM Project。如果指定的项目名称与已有的项目名称相同,则无法绑定。

  6. 单击确定

步骤二:使用IMM

使用OSS控制台

  1. 单击Bucket列表,然后单击目标Bucket名称。
  2. 在左侧导航栏,选择文件管理 > 文件管理
  3. 单击要处理的图片或文档文件的名称,在详情对话框中直接使用IMM的相关功能。

    您也可以单击目标文件右侧详情,打开文件的详情对话框。

使用Java SDK

以下代码用于通过OSS Java SDK使用IMM。

import com.aliyun.oss.*;
import com.aliyun.oss.model.GeneratePresignedUrlRequest;
import java.net.URL;
import java.util.Date;

public class OssProcessPreview {

    // Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。
    private static String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
    // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
    private static String ak = "yourAccessKeyId";
    private static String sk = "yourAccessKeySecret";
    // 填写Bucket名称。
    private static String bucketName = "imm-user-zzh";
    // 填写Object完整路径,完整路径中不能包含Bucket名称。
    private static String objectKey = "test.jpg";

    public static void main(String[] args) {
        // 获取Object人脸识别的签名URL。
        URL url = getUrl("imm/detectface", bucketName, objectKey);
        customerPrint(url);
        bucketName = "imm-user-zzh";
        objectKey = "a.xlsx";
        // 获取Object文档预览的签名URL。
        url = getUrl("imm/previewdoc", bucketName, objectKey);
        customerPrint(url);
    }

    private static void customerPrint(URL url){
        if(url != null){
            System.out.println(url.toString());
        }else{
            System.out.println("获取URL失败");
        }
    }

    private static URL getUrl(String process, String bucketName, String objectKey) {
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, ak, sk);

        try {
            GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, objectKey);
            request.setProcess(process);
            // 设置签名URL过期时间,单位为毫秒。
            request.setExpiration(new Date(new Date().getTime() + 3600 * 1000));
            return ossClient.generatePresignedUrl(request);
        } catch (OSSException oe) {
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            // 关闭OSSClient。
            ossClient.shutdown();
        }
        return null;
    }
}

(可选)解绑IMM

如果您不再需要使用IMM的功能,可以将存储空间与IMM解绑,避免产生额外的费用。

  1. 单击Bucket列表,然后单击目标Bucket名称。
  2. 在左侧导航栏,选择数据处理与索引 > 智能媒体
  3. 在需要解绑的IMM右侧,单击设置
  4. 功能配置对话框中,选择解绑
  5. 单击确定