有用户反馈集成了 LeanCloud SDK 的 iOS app 中无法正常下载文件。经过调查,发现

  1. 如果在网页上直接访问 _Files 表里的 URL,所有文件的链接都只会返回 {"error":"download token not specified"} 错误(直接显示在网页上)。
  2. 在控制台中绑定的 HTTPS 文件访问域名的 SSL 一个月前过期了,在网页上 “已绑定” 的下方显示“申请证书失败:issueCert for tc-files.绑定的域名.com: Request failed with status code 401”。
  3. 于是尝试着手动更新 SSL 证书,在 ZeroSSL.com 上通过验证得到了一份 SSL certificate,其中包含 certificate.crt, ca_bundle.crt 和 private.key 三个文件,但 LeanCloud 控制台上手动更新 SSL 只能上传一个 crt 文件和一个 key 文件,上传 certificate.crt 和 private.key 后遇到错误 “request Qiniu API failed: 400 - {"code":400406,"error":"未知的证书链"} (500) [500 PATCH https://cn-n1-console-api.leancloud.cn/1.1/domain-center/domain-bindings/tc-files.绑定的域名.com]”。
  4. 但是 LeanCloud 控制台上莫名奇妙地又成功显示新的 SSL 证书上的新的过期日期。而打开网页访问某个文件 URL 还是显示 {"error":"download token not specified"} 错误,且浏览器上点击地址旁的🔐图标显示的证书还是之前已经过期的 SSL 证书。
  5. 最后又尝试先把绑定的文件访问域名的 HTTPS 切换成 HTTP,但切换后直接访问文件 URL 还是显示 {"error":"download token not specified"} 错误,在 iOS app 中尝试下载 HTTP URL 的文件则会报 “Request failed: unauthorized (401)” 错误(其他 API 访问都是正常的没有问题,只有文件会出错)。

请问:文件下载失败的原因是否是因为 SSL 过期(因为之前都正常运行,app 的这部分代码也很久没有修改过)?如果是的话,应该如何更新 SSL 或者如何解决下载文件时遇到的 {"error":"download token not specified"}?谢谢解答!

你好,访问文件时遇到 download token not specified 错误是因为应用的文件服务被禁用了。我们的记录显示我们在 2023 年 4 月 19 日给您发送了一封邮件,告知您由于您的应用多次被检测出违规文件,因此文件服务已被禁用。如需恢复文件服务,需要您对应用中已有的文件完成全量审核,并确保新上传的文件也会被及时审核。完成这些步骤后,请发送邮件至 leancloud-support@xd.com 申请恢复文件服务。谢谢!

谢谢你的回复。查看了邮件的其他文件夹里才看到之前邮件,已回复。谢谢!