文件上传
更新时间: 2024/07/17 17:57:34
网易云信提供服务端接口支持将消息的文件资源上传至网易数帆对象存储服务(Netease Object Storage)(以下简称为 NOS),同时也提供服务端接口清除已上传的文件资源,方便您对云存储文件进行管理。
上传文件(Base64 编码)
功能描述
将文件内容进行 Base64 编码后上传至 NOS。
可上传最大 15M 的字符流。
API 使用限制
单个应用默认最高调用频率:100 次/秒。如超限,将被屏蔽 10 秒。
URL
httpPOST https://api.netease.im/nimserver/msg/upload.action HTTP/1.1
Content-Type:application/x-www-form-urlencoded;charset=utf-8
请求参数
-
POST 请求中 Headers 的设置请参考API调用方式。
-
POST 请求中 Body 的设置如下:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
content | String | 是 | 字符流 base64 串(Base64.encode(bytes)),最大 15M 的字符流 |
type | String | 否 | 上传文件类型。最多 128 字符,超限视为 null |
ishttps | boolean | 否 | 返回的 URL 是否需要为 HTTPS 的 URL,默认 false |
expireSec | int | 否 | 文件过期时长,单位:秒,必须大于或等于 86400 |
tag | String | 否 | 文件的应用场景,最多 32 个字符 |
返回参数
参数 | 类型 | 说明 |
---|---|---|
url | String | 上传文件的 URL 资源地址 |
示例
cURL请求示例
curlcurl -X POST -H "AppKey: go9dnk49bkd9jd9vmel1*****803mgq3" -H "Nonce: 4tgggergigwow323t23t" -H "CurTime: 1443592222" -H "CheckSum: 9e9db3b6c9abb2e1962cf3e6f7316fcc55583f86" -H "Content-Type: application/x-www-form-urlencoded" -d 'content=gwettwgsgssgs323f' 'https://api.netease.im/nimserver/msg/upload.action'
请求成功返回示例
http 响应:json
json"Content-Type": "application/json; charset=utf-8"
{
"code":200,
"url": "https://sf.nos.netease.im/image"
}
请求失败返回示例
"Content-Type": "application/json; charset=utf-8"
{
"code":414
"desc":"content is empty"" // 上传文件大小为空
}
状态码
该接口在 HTTPS Body 中返回请求的状态码,以下仅列出与接口业务相关的状态码。完整状态码请参见状态码。
状态码 | 说明 | 处理建议 |
---|---|---|
403 | 请求失败原因可能为:
|
查看对应提示信息做出处理 |
414 | 参数错误 | 根据提示信息,检查传入参数的格式和限制条件 |
500 | 服务出错 | - |
文件上传
功能描述
将文件上传至 NOS。
可上传最大为 15MB 的文件。
API 使用限制
单个应用默认最高调用频率:100 次/秒。如超限,将被屏蔽 10 秒。
URL
httpPOST https://api.netease.im/nimserver/msg/fileUpload.action HTTP/1.1
Content-Type:multipart/form-data;charset=utf-8
请求参数
-
POST 请求中 Headers 的设置请参考API调用方式。
-
POST 请求中 Body 的设置如下:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
content | String | 是 | 最大 15M 的字符流 |
type | String | 否 | 上传文件类型,最多 128 字符,如超过将视为 null |
ishttps | boolean | 否 | 返回的 URL 是否需要为 HTTPS 的 URL,默认 false |
expireSec | int | 否 | 文件过期时长,单位:秒,必须大于或等于 86400 |
tag | String | 否 | 文件的应用场景,最多 32 个字符 |
返回参数
参数 | 类型 | 说明 |
---|---|---|
url | String | 上传文件的 URL 资源地址 |
示例
cURL请求示例
curlcurl -X POST -H "AppKey: go9dnk49bkd9jd9vmel1*****803mgq3" -H "Nonce: 4tgggergigwow323t23t" -H "CurTime: 1443592222" -H "CheckSum: 9e9db3b6c9abb2e1962cf3e6f7316fcc55583f86" -H "Content-Type: multipart/form-data" -d 'content=gwettwgsgssgs323f' 'https://api.netease.im/nimserver/msg/fileUpload.action'
请求成功返回示例
http 响应:json
json"Content-Type": "application/json; charset=utf-8"
{
"code":200,
"url": "https://sf.nos.netease.im/image"
}
请求失败返回示例
"Content-Type": "application/json; charset=utf-8"
{
"code":414
"desc":"content is empty"" // 上传文件大小为空
}
状态码
该接口在 HTTPS Body 中返回请求的状态码,以下仅列出与接口业务相关的状态码。完整状态码请参见状态码。
状态码 | 说明 | 处理建议 |
---|---|---|
403 | 请求失败原因可能为:
|
查看对应提示信息做出处理 |
414 | 参数错误 | 根据提示信息,检查传入参数的格式和限制条件 |
500 | 服务出错 | - |
清理已上传文件
提交清理任务,按时间范围、文件类型和场景清理已上传 NOS 的文件。
- 每天提交的清理任务数量存在限制(1 天内最多调用 5 次),请合理规划。
- 提交清理任务后,云信服务器将会在下一周的周五进行文件清理。
功能介绍
-
文件上传 NOS 成功时,NOS 会为其生成时间戳。
-
根据传入参数的差异,调用本 API 可执行如下四种类型的清除任务:
传入参数 | 清除任务说明 |
---|---|
仅传入时间范围 | 如果某个文件的时间戳在传入的时间范围内(即在下文的startTime 和endTime 之间),那么该文件将被清除 |
传入时间范围与文件类型 | 如果某个文件的时间戳在传入的时间范围且与传入的类型(contentType )相匹配,那么该文件将被清除清 |
传入时间范围与文件应用场景 | 如果某个文件时间戳在传入的时间范围且与传入的应用场景(tag )相匹配,那么该文件将被清除 |
传入时间范围、文件类型和文件应用场景 | 如果某个文件的时间戳在传入的时间范围,且与传入的类型和应用场景都匹配,那么该文件将在清除 |
API 使用限制
单个应用 1 天最高调用 5 次。如超限,将被屏蔽 1 天。
URL
httpPOST https://api.netease.im/nimserver/job/nos/del.action HTTP/1.1
Content-Type:application/x-www-form-urlencoded;charset=utf-8
请求参数
-
POST 请求中 Headers 的设置请参考API调用方式。
-
POST 请求中 Body 的设置如下:
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
startTime | Long | 是 | 开始时间(毫秒级)。startTime 必须小于 endTime 且大于 0,endTime 和 startTime 差值在 1 天以上,7 天以内 |
endTime | Long | 是 | 结束时间(毫秒级)。endTime 必须早于当天(即只可以清理当天以前的文件) |
contentType | String | 否 | 被清理的文件类型,文件类型包含 contentType 则被清理 如原始文件类型为"image/png",contentType 参数为 "image",则满足被清理条件 |
tag | String | 否 | 被清理文件的应用场景,完全相同才被清理 如上传文件时应用场景为"usericon",tag参数为"usericon",则满足被清理条件 |
返回参数
参数 | 类型 | 说明 |
---|---|---|
data | JSON | 清理任务数据,包含任务的 ID(taskid) |
示例
cURL请求示例
curlcurl -X POST -H "CheckSum: 32dc17d0190f37037abc9feb749bbf049c9367e7" -H "AppKey: fe416640c8e8a72734219e*****d2547" -H "Nonce: 1" -H "CurTime: 1451200147" -H "Cache-Control: no-cache" -H "Postman-Token: a503b469-ee33-2c2e-8fb1-87b1fdf9f8f4" -H "Content-Type: application/x-www-form-urlencoded" -d 'startTime=1533988669286&endTime=1534420669286&contentType=image&tag=usericon' "http://223.252.220.223/nimserver/job/nos/del.action"
返回示例
http 响应:json
json"Content‐type":"application/json;charset=utf‐8"
{
"code": 200,
"data":{
"taskid":"1024030f3841440daf2af73672792f47"
}
}
状态码
该接口在 HTTPS Body 中返回状态码,状态码详情请参考状态码。
此文档是否对你有帮助?