下载文件

大约 2 分钟

下载文件

本文介绍如何调用 RESTful API 从环信服务器下载图片、语音、视频或其他类型的文件。

功能说明

  • 支持下载图片、语音、视频或其他类型的文件。
  • 支持文件访问限制:如果上传文件时设置了文件访问限制(restrict-access 设置为 true),需要在下载请求头中包含文件上传响应中返回的 share-secret 和当前登录用户的 token 才能下载文件。

调用频率上限

100 次/秒/App Key

请求 URL

GET https://{host}/{org_name}/{app_name}/chatfiles/{file_uuid}
参数类型是否必需描述
file_uuidString服务器为文件生成的 UUID。

关于请求 URL 中的参数说明,详见 请求 URL 参数介绍

请求示例

以下载图片为例:

# 将 <YourToken> 替换为你的用户 token 或在服务端生成的 App Token 

curl -X GET 'https://XXXX/XXXX/XXXX/chatfiles/7f456bf0-XXXX-XXXX-b630-777db304f26c'-o /Users/test/easemob/image/image.JPG    \
-H 'Accept: application/octet-stream'    \
-H 'Authorization: Bearer <YourToken>'     \
-H 'share-secret: f0Vr-uyyEeiHpHmsu53XXXXXXXXZYgyLkdfsZ4xo2Z0cSBnB' 

提示

上述请求示例中,/Users/test/easemob/image/image.JPG 为环信即时通讯 IM 的本地文件路径,使用时请替换为自己的文件路径,否则会请求失败。

请求 header 参数

关于 AcceptAuthorization 字段的说明,详见 请求 header 参数说明

参数类型是否必需描述
share-secretString文件访问密钥。若上传文件时限制了访问,下载该文件时则需要该访问密钥。成功上传文件后,从 文件上传 的响应 body 中获取该密钥。

响应示例

{
  //语音/图片文件内容
}

响应 body 字段

如果返回的 HTTP 状态码为 200,表示请求成功。参数及说明详见 上传文件

如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考 响应状态码 了解可能的原因。

错误码

如果返回的 HTTP 状态码非 200,表示请求失败,可能提示以下错误码:

HTTP 状态码错误类型错误提示可能原因处理建议
404entity_not_foundfile may not exists传入的 file_uuid 不存在。输入正确的路径参数 file_uuid
404file_expiredfile xxxxx is expired文件已过期。默认情况下,消息附件,例如图片、音频、视频和其他文件可存储 7 天。若要提升该上限,请联系商务。

关于其他错误,你可以参考 响应状态码 了解可能的原因。

上次编辑于: