背景介绍
本文将介绍如何在上传文件到 COS 时同步获取文件信息,如图片的宽高、格式等。
目前,可以通过 COS 上传接口,如 PUT Object、CompleteMultipartUploads 等将文件存储至 COS 存储桶中,我们针对以下三种场景提供上传时同步获取文件信息的方式:
ReturnBody 是 COS 对外提供的一种获取文件信息的方式。在上传请求(PUT Object、POST Object、CompleteMultipartUploads)中携带 x-cos-return-body 头部,传入自定义的 ReturnBody 参数,便可在请求响应结果中获取到文件信息 。
Pic-Operations 是上传时的一个请求包头,在上传请求(PUT Object、POST Object、CompleteMultipartUploads)中携带该包头并设置需要返回原图信息的参数,就可在图片上传至 COS 时同步获取原图信息。
说明 Pic-Operations 是由数据万象服务提供的获取图片信息的能力,使用时会产生图片基础处理费用。
主要流程如下图所示:
场景一:同步获取文件元信息
如需要在上传文件后,同步获取文件元信息,可以通过 ReturnBody 实现。在上传请求头部中携带由文件元信息组成的 ReturnBody 参数,便可在请求响应结果中获取到文件元信息。
ReturnBody 提供以下文件元信息参数
使用时,需要先自定义构造 ReturnBody 参数,这是您希望在返回结果中获取到的文件元信息。
注意 ReturnBody 参数的 key 可以自定义名称,value 必须跟上述 ReturnBody 提供的变量名保持一致。
请求示例
// ReturnBody 参数的 key 可以自定义名称,value 必须跟 ReturnBody 提供的变量保持一致
{
"bucket": "${bucket}",
"key": "${object}",
"filesize": "${size}",
"mime_type": "${mimeType}"
}
再将 ReturnBody 参数转换为字符串,并进行 URL 安全的 Base64 编码,可以得到:
eyJidWNrZXQiOiIke2J1Y2tldH0iLCJrZXkiOiIke29iamVjdH0iLCJmaWxl