服务端
API 参考
圈组

文件上传

更新时间: 2024/04/01 14:55:08

网易云信提供服务端接口支持将消息的文件资源上传至网易数帆对象存储服务(Netease Object Storage)(以下简称为 NOS),同时也提供服务端接口清除已上传的文件资源,方便您对云存储文件进行管理。

上传文件(非分片)

功能描述

将文件上传(非分片)至 NOS。

API 使用限制

  • 单个应用默认最高调用频率:100 次/秒。如超限,将被屏蔽 10 秒。
  • 字符流需要 base64 编码。
  • 可上传的最大文件为 15MB。

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 的设置如下:

参数类型必填说明
contentString 字符流 base64 串(Base64.encode(bytes)),最大 15M 的字符流
typeString 上传文件类型。最多 128 字符,超限视为 null
ishttpsboolean 返回的 URL 是否需要为 HTTPS 的 URL,默认 false
expireSecint 文件过期时长,单位:秒,必须大于或等于 86400
tagString 文件的应用场景,最多 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。

API 使用限制

  • 单个应用默认最高调用频率:100 次/秒。如超限,将被屏蔽 10 秒。
  • 可上传的最大文件为 15MB。

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 的设置如下:

参数类型必填说明
contentString 最大 15M 的字符流
typeString 上传文件类型,最多 128 字符,如超过将视为 null
ishttpsboolean 返回的 URL 是否需要为 HTTPS 的 URL,默认 false
expireSecint 文件过期时长,单位:秒,必须大于或等于 86400
tagString 文件的应用场景,最多 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 可执行如下四种类型的清除任务:

传入参数 清除任务说明
仅传入时间范围 如果某个文件的时间戳在传入的时间范围内(即在下文的startTimeendTime之间),那么该文件将被清除
传入时间范围与文件类型 如果某个文件的时间戳在传入的时间范围且与传入的类型(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 的设置如下:

参数类型必填说明
startTimeLong 开始时间(毫秒级)。startTime 必须小于 endTime 且大于 0,endTime 和 startTime 差值在 1 天以上,7 天以内
endTimeLong 结束时间(毫秒级)。endTime 必须早于当天(即只可以清理当天以前的文件)
contentTypeString 被清理的文件类型,文件类型包含 contentType 则被清理 如原始文件类型为"image/png",contentType 参数为 "image",则满足被清理条件
tagString 被清理文件的应用场景,完全相同才被清理 如上传文件时应用场景为"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 中返回状态码,状态码详情请参考状态码

此文档是否对你有帮助?
有帮助
去反馈
  • 上传文件(非分片)
  • 功能描述
  • API 使用限制
  • URL
  • 请求参数
  • 返回参数
  • 示例
  • cURL请求示例
  • 请求成功返回示例
  • 请求失败返回示例
  • 状态码
  • 分片上传
  • 功能描述
  • API 使用限制
  • URL
  • 请求参数
  • 返回参数
  • 示例
  • cURL请求示例
  • 请求成功返回示例
  • 请求失败返回示例
  • 状态码
  • 清理已上传文件
  • 功能介绍
  • API 使用限制
  • URL
  • 请求参数
  • 返回参数
  • 示例
  • cURL请求示例
  • 返回示例
  • 状态码