差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
im:server:basics:fileoperation [2019/03/14 04:36] jk [下载缩略图] |
im:server:basics:fileoperation [2022/05/19 04:11] (当前版本) jennifer.zeng |
||
---|---|---|---|
行 1: | 行 1: | ||
====== 文件上传下载 ====== | ====== 文件上传下载 ====== | ||
+ | |||
+ | 更新时间:2021-12-31 该文档已不再维护,请看新版 3.X 文档。 | ||
+ | |||
+ | 新版文档地址:[[ccim:rest:message|消息管理]] | ||
---- | ---- | ||
行 9: | 行 13: | ||
* 如果选择限制的话,会在上传请求完成后返回一个 secret,只有知道这个 secret,并且是 APP 的注册用户,才能够下载文件。 | * 如果选择限制的话,会在上传请求完成后返回一个 secret,只有知道这个 secret,并且是 APP 的注册用户,才能够下载文件。 | ||
* 如果选择不限制的话,则只要是 APP 的注册用户就能够下载。 | * 如果选择不限制的话,则只要是 APP 的注册用户就能够下载。 | ||
+ | * 如选择加secert限制的话,''消息回调(包含发送前回调和发送后回调)、历史消息这些功能中涉及下载文件时,都需要在下载url中拼接secert,才能正常下载文件''; | ||
+ | * 拼接规则如下: | ||
+ | <code json> | ||
+ | {{url}}?share-secret={{secret}} | ||
+ | </code> | ||
+ | | ||
---- | ---- | ||
行 46: | 行 56: | ||
<code php> | <code php> | ||
- | curl -X POST -H 'Content-Type: multipart/form-data' -H 'Accept: application/json' -H 'Authorization: Bearer YWMtVVK6cPFqEeif2wnxtHDB7AAAAAAAAAAAAAAAAAAAAAGL4CTw6XgR6LaXXVmNX4QCAgMAAAFnT6x89wBPGgCnBeC15W5VAU5kW2f80QS3_SQSnbEjyOtg8XCcmkvUXw' -H 'restrict-access: true' {"type":"formData"} 'http://a1.easemob.com/easemob-demo/testapp/chatfiles' | + | curl -X POST https://a1.easemob.com/easemob-demo/testapp/chatfiles -H 'Authorization: Bearer YWMtS1pRuFa-EemixAMhJgmGUAAAAAAAAAAAAAAAAAAAAAGL4CTw6XgR6LaXXVmNX4QCAgMAAAFp57yd7QBPGgDNLstNggrzgHV3JAbqbznTptqLhpG0fTOCaBFJZgduZA' -H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' -H 'restrict-access: true' -F file=@/Users/test/9.2/Easemob/image/IMG_2953.JPG |
</code> | </code> | ||
+ | |||
+ | **注意:**上述请求示例中''-F file=@/Users/test/9.2/Easemob/image/IMG_2953.JPG'',为环信本地文件路径,使用时请替换为自己的文件路径,否则会请求失败。 | ||
=== 可能返回的结果示例 === | === 可能返回的结果示例 === | ||
行 55: | 行 67: | ||
<code json> | <code json> | ||
{ | { | ||
- | "action": "post", | + | "action": "post", |
- | "application": "8be024f0-e978-11e8-b697-5d598d5f8402", | + | "application": "8be024f0-e978-11e8-b697-5d598d5f8402", |
- | "path": "/chatfiles", | + | "path": "/chatfiles", |
- | "uri": "https://a1.easemob.com/easemob-demo/testapp/chatfiles", | + | "uri": "https://a1.easemob.com/easemob-demo/testapp/chatfiles", |
- | "entities": [ | + | "entities": [ |
- | { | + | { |
- | "uuid": "c66b80da-f236-11e8-b6f2-dd847737923d", | + | "uuid": "5fd74830-56be-11e9-822a-81ea50bb049d", |
- | "type": "chatfile", | + | "type": "chatfile", |
- | "share-secret": "xmuA5PI2Eei2FcUwVDtPJq_KPZcLUgikAu_GTRBgW9AFgmOn" | + | "share-secret": "X9dIOla-EemnFYUgtUZLGyqG9Y-S01eL_ysw27NqTV1_g7Yc" |
- | } | + | } |
- | ], | + | ], |
- | "timestamp": 1543317770592, | + | "timestamp": 1554371126338, |
- | "duration": 0, | + | "duration": 0, |
- | "organization": "easemob-demo", | + | "organization": "easemob-demo", |
- | "applicationName": "testapp" | + | "applicationName": "testapp" |
} | } | ||
</code> | </code> | ||
行 91: | 行 103: | ||
=====下载语音/图片文件===== | =====下载语音/图片文件===== | ||
这里需要注意的就是,需要在 HTTP header 中带上上面返回的 share-secret 和当前登录用户的 token 才能够下载,同时注意 header 中执行的 accept 的值需要设置成 application/octet-stream。 | 这里需要注意的就是,需要在 HTTP header 中带上上面返回的 share-secret 和当前登录用户的 token 才能够下载,同时注意 header 中执行的 accept 的值需要设置成 application/octet-stream。 | ||
+ | |||
+ | uuid 和 share-secret 在文件上传成功后会返回。 | ||
=== HTTP Request === | === HTTP Request === | ||
- | ^{{:im:server:basics:get.png?nolink&90|}}^**/{org_name}/{app_name}/chatfiles/{filestream}**^ | + | ^{{:im:server:basics:get.png?nolink&90|}}^**/{org_name}/{app_name}/chatfiles/{uuid}**^ |
- | 需要在请求时对应填写{filestream},需要获取文件返回的 uuid 和 share-secret。 | + | |
=== Request Headers === | === Request Headers === | ||
行 101: | 行 115: | ||
|Content-Type|application/json| | |Content-Type|application/json| | ||
|Authorization|Bearer ${token}| | |Authorization|Bearer ${token}| | ||
+ | |share-secret|share-secret| | ||
=== 请求示例 === | === 请求示例 === | ||
行 186: | 行 201: | ||
<WRAP half column> | <WRAP half column> | ||
- | 下一页:[[im:server:basics:recordfiledownload|实时音视频录制]] | + | 下一页:[[im:server:basics:conferencemanage|会议管理]] |
</WRAP> | </WRAP> | ||
</WRAP> | </WRAP> |