自定义响应内容(Returnbody)

简单反馈只会包含资源的最基本信息,但很多情况下用户都希望得到更多的资源信息。

用户可以通过资源管理数据处理(Fop)功能获得资源的扩展信息。但这些都需要用户发起一个新请求。七牛云存储支持在上传请求的响应中直接返回客户端需要的资源扩展信息。

在生成上传凭证(UploadToken)时,开发者可以通过设置上传策略(PutPolicy)中的ReturnBody字段指定需要返回的信息,比如资源的大小、类型,图片的尺寸等等。

ReturnBody实际上是一个用户定义的反馈信息模板,内容必须用JSON格式表达。下面是一个示例:

{
    "foo": "bar",
    "name": $(fname),
    "size": $(fsize),
    "type": $(mimeType),
    "hash": $(etag),
    "w": $(imageInfo.width),
    "h": $(imageInfo.height),
    "color": $(exif.ColorSpace.val)
}

用户可以在ReturnBody中使用变量,包括魔法变量自定义变量。七牛云存储会将这些变量替换为对应实际值,然后作为响应内容反馈给用户,如下所示:

  {
    "foo": "bar",
    "name": "gogopher.jpg",
    "size": 214513,
    "type": "image/jpg",
    "hash": "Fh8xVqod2MQ1mocfI4S4KpRL6D98",
    "w": 640,
    "h": 480,
    "color": "sRGB"
  }

需要注意的是,ReturnBody不能在启用了回调时使用。如果上传策略中通过设置callbackUrl字段启用了回调,ReturnBody将直接被忽略。

在回调模式中如果也想自定义响应内容,请在生成上传凭证时设置上传策略中的callbackBody字段。更多关于回调模式的解释,请参见回调通知(callback)


如果有任何问题,请进入 七牛云存储问答社区 或者发送 工单 咨询