全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
智能云相册

上传照片

更新时间:2017-10-23 10:20:06

上传照片会涉及到和OSS的交互,因此这可能是智能云相册中流程最复杂的功能。本文将详细介绍上传文件到PhotoStore的流程。

上传流程

上传流程如下图所示:

Created with Raphaël 2.1.2客户端客户端业务服务器业务服务器智能云相册智能云相册OSSOSS获取访问智能云相册临时访问凭证开启上传事务返回上传文件到OSS需要的信息(OSS地址和OSS临时访问凭证)上传文件到OSS指定的路径提交上传事务(文件上传完毕)

上传事务详解

Transaction(上传事务)表示一次照片上传的完整过程。上传事务包括以下几个步骤

开启上传事务(对应API为CreateTransaction

开启事务时客户端告诉智能云相册本次上传文件大小, md5和文件扩展名等信息。文件大小和md5用于上传后的完整性校验,扩展名用于帮助服务端识别文件的类型。

智能云相册在开启事务时会做以下事情:

  • 在PhotoStore对应OSS Bucket中为其分配对应的上传路径。
  • 生成用于上传文件到OSS的临时访问凭证。这组OSS临时访问凭证只能用于上传文件到指定的OSS的路径上,不可做别的任何操作。

上传事务的返回值中包括什么?

上传事务的返回值中包括以下信息:

  • 上传文件到OSS时需要的信息,包括:临时访问密钥,STS Token、OSS的EndPoint、Bucket和对应到OSS的存储路径
  • FileId:存储在OSS上的文件名,它是存储路径的一部分。
  • SessionId:SessionId和对应FileId一一对应,用于防止重复提交事务。提交事务时需要提供SessionId,服务端会验证SessionId和FileId是否匹配。

上传文件到OSS

利用开启上传事务过程中获取到的OSS临时访问凭证,客户端利用OSS的SDK直接将文件上传到OSS中。具体可以参考OSS上传文件的相关文档。

上传事务中返回的OSS临时访问凭证,有效期为1小时,需要在1小时内完成文件上传。

提交上传事务(对应API为CreatePhoto

文件流上传到OSS后,客户端需再次发起请求到智能云相册提交上传事务,智能云相册会对文件做完整性校验,比如大小和md5是否正确。

示例代码

请参考利用SDK来实现上传照片的示例代码。

本文导读目录