全部产品
云市场

快速开始

更新时间:2018-12-25 15:22:58

IMM 提供了类似 OSS 图片处理 的便捷使用方式,通过 OSS 对象 URL 中传递x-oss-process参数,快速实现 IMM 的高级功能,使用示例如下:

  1. http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=imm/detectface

参数的格式为 x-oss-process=module/action,parame_value

  • x-oss-process:数据处理操作固定参数名,携带该参数时,可以做相应的数据处理操作。
  • module:操作的模块区分,OSS 原生提供 2 类模块,图片处理模块image和视频处理模块video智能媒体管理 服务提供的处理模块为imm
  • action:数据的操作,如上示例中为的detectface人脸识别。
  • parame_value:数据操作对应的参数,采用 key_value 形式,通过下划线分割;当某些操作参数唯一时,可以单独输出 value 即可,具体以各操作定义为准。

产品开通

如果还未开通 智能媒体管理 服务,需先完成产品开通后,才进行如下步骤:

  1. 登录 阿里云官网
  2. 将鼠标移至 产品->云计算基础->存储服务->智能媒体管理,打开 IMM 产品详情页面。
  3. IMM 产品详情页,单击 立即开通
  4. 开通服务后,会自动跳转到 IMM 控制台

一键生成访问角色

智能媒体管理支持处理数据来源为 OSS 的数据,因此需要授权 智能媒体管理 访问存储服务的相关权限。

操作步骤

  1. 登录 IMM 控制台
  2. 进入控制台时,会默认检查该是否有该角色权限,会弹出提示框,点击授权

授权访问

一键配置开通

开通 智能媒体管理 服务后,可以在 OSS 控制台 进行管控操作,快速使用相关功能。如下操作步骤:

  1. 登录 OSS 控制台
  2. 点击任意 Bucket,进入Bucket 详情页
  3. 点击智能媒体管理,如果没有开通任何功能,直接点击一键开通
  4. 确认开通的功能项,以及对应的计费规则,点击确认。

demo

注意:OSS 与智能媒体管理绑定,本质是每个分析功能与智能媒体管理的一个 Project 关联调用。一键开通,会帮助默认创建对应区域的 IMM Project,然后与该 OSS Bucket 做绑定。

SDK 方式直接使用

正常的生产中,可通过 OSS SDK 直接使用分析数据,示例如下:

  1. public class OssProcessPreview{
  2. public static void main(String[] args) {
  3. String ak = "";
  4. String sk = "";
  5. String bucketName = "imm-user-zzh";
  6. String objectKey = "test.jpg";
  7. URL url = getUrl("imm/detectface", ak, sk, bucketName, objectKey);
  8. System.out.println(url.toString());
  9. bucketName = "imm-user-zzh";
  10. objectKey = "a.xlsx";
  11. url = getUrl("imm/previewdoc", ak , sk ,bucketName, objectKey);
  12. System.out.println(url.toString());
  13. }
  14. private static URL getUrl(String process, String ak, String sk, String bucketName, String objectKey) {
  15. OSSClient client = new OSSClient(ak, sk);
  16. client.setEndpoint("oss-cn-shanghai.aliyuncs.com");
  17. GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, objectKey);
  18. getObjectRequest.setProcess(process);
  19. GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, objectKey);
  20. request.setProcess(process);
  21. request.setExpiration(new Date(new Date().getTime() + 3600 * 1000));
  22. return client.generatePresignedUrl(request);
  23. }
  24. }