差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
im:server:basics:fileoperation [2019/04/04 09:59]
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 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/​lizg/​9.2/​Easemob/​image/​IMG_2953.JPG+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''​,为环信本地文件路径,使用时请替换为自己的文件路径,否则会请求失败。
  
 === 可能返回的结果示例 === === 可能返回的结果示例 ===
行 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>​