上传资源
背景说明
在后台接口中,因为稳定性和资源地域隔离的要求,所有传入文件的地方,我们都需要使用腾讯云 COS 链接代替,腾讯云后台通过这些链接以 HTTP GET 请求下载到需要的文件。
传入要求
提示如果您暂无云存储或者 COS 使用经验并且需要快速接入,可以先看最佳实践部分:
对于传入的链接需要满足以下几点要求:
它必须是腾讯云 COS 的域名,并且 bucket 所在地域需要和您要使用的接口中的 Region 参数一致,例如使用 ap-singapore 的服务,链接应该是符合这种形式 。https://<your-bucket>-<your-appid>.cos.ap-singapore.myqcloud.com 详情请参见 对象存储。 它必须可以直接被 GET 请求从公网访问。
最佳实践
使用自建的腾讯云 COS 传入
如果您有腾讯云 COS 或者因为其他原因的需要存储在自己的 COS 中,可以使用这个方法:
计算对象的32位 MD5 摘要(腾讯云后台下载完成对象后会以此校验防止文件错乱)
使用 CreateUploadUrl 中转
使用 CreateUploadUrl 传入 TargetAction如DetectReflectLivenessAndCompare,传入地域如 ap-singapore。 根据返回的 UploadUrl,在指定的时间范围内,使用 HTTP PUT 方法上传。
计算对象的32位 MD5 摘要(腾讯云后台下载完成对象后会以此校验防止文件错乱)
在 DetectReflectLivenessAndCompare 接口中传入 ResourceUrl 以及计算得到的 MD5。
其他说明
数据存储安全性问题
如果您使用的是我们的 CreateUploadUrl 接口,这个接口暂时不支持主动删除,只会定期清理,过期时间目前为2小时,如果需要更加严谨安全的做法,建议使用自己的 COS,在接口使用完毕之后将上传的对象做一些保护措施。
MD5 的作用
内容的 MD5 是做完整性校验的,防止您原本的对象被覆盖,例如多次比对请求使用了同一个对象或者链接,我们后台返回了比对相似度低,但这种错误不易察觉。因此 MD5 的计算需要您的后台计算即可(在 SDK 场景也需要自行计算,因为主要目的是为了防止后台错乱,SDK 不做计算。)
常见问题解决方法
接入阶段常见错误:
服务返回 invalid resourceUrl,这种情况可以检查一下传入的 URL 是否符合#传入要求中的 COS 域名要求。
服务返回 FailedOperationDownloadErrorr,检查下传入的 URL 是否可以直接在公网访问。
服务返回 MD5 错误,检查 URL下载后的内容是否和您自己计算的一致(如 DetectReflectLivenessAndCompare 接口需要两个不同的 URL)
其他接入阶段不易发现的上传内容错误,如 DetectReflectLivenessAndCompare 接口中 LiveData 错误或者FailedOperation.LifePhotoDetectFaces 等可能是上传内容错误,如图片需要上传图片的二进制数据而不是 Base64。
线上常见问题:
当服务接入成功之后会有一些不可避免的算法问题,需要您记录好我们返回的 RequestId 以及您请求的参数,然后联系我们的售后 联系我们。 下载资源
一些接口会返回图片如 DetectReflectLivenessAndCompare 中会返回 BestFrame,我们也会通过一个短效的Url传递,需要您尽快下载转存,否则会被清理。