上传照片
上传照片会涉及到和OSS的交互,因此这可能是智能云相册中流程最复杂的功能。本文将详细介绍上传文件到PhotoStore的流程。
上传流程
上传流程如下图所示:
上传事务详解
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来实现上传照片的示例代码。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论