人脸识别案例:接口返回“图片下载错误”

2020-12-01 20:57:29 浏览数 (1)

导语

上一篇介绍了腾讯人脸识别产品基本功能、使用场景和体验demo等,并详细介绍了接口返回“图片中没有人脸”的原因与解决方案。本篇作为其姊妹篇,将详细探讨接口返回“图片下载错误”的案例情况。

案例背景

用户在使用人脸识别各类功能接口时,入参必填项一定包含“图片”这一选项,支持base64和URL链接两种方式传入。当用户选择URL入参时,偶有返回“图片下载错误”的错误码。严重时,可能在某一时间段大量返回该错误码,导致影响用户的现网业务。

业务错误码

说明

FailedOperation.ImageDownloadError

图片下载错误。

原因分析

根本原因

图片下载超时,超过下载时间允许的最大阈值4.5s。

当用户传入URL参数时,腾讯云人脸识别产品会通过下载代理服务器,模拟公网请求去下载该URL对应的图片,为了保证服务器性能和用户体验,云侧在业务逻辑上对下载耗时进行了阈值设置,一旦下载时间超过4.5s,即会返回“图片下载错误”。因此要保证图片正常被下载,既要保证该图片公网可访问,又要保证该图片的下载耗时在4.5s以内。

客户使用姿势问题

从历史案例来看,导致图片下载超时主要是客户侧自身使用姿势的问题,具体包括:

1.用户的图片服务器某一时刻负载过高,导致公网请求该图片变慢。

2.用户使用CDN服务保证请求速率,但是用户刚同步照片到CDN就调用接口服务,忽略了CDN没有预热,直接回源的问题。

3.用户使用CDN服务保证请求速率,但是偶现下载错误,是因为CDN产商的问题,需要联系CDN厂商排障。

4.用户的图片服务器在海外,腾讯云人脸识别图片下载代理服务在国内,可能会导致下载超时。

上述四类原因是导致图片下载错误的高频原因,用户可以首先根据上述情况进行具体排查。

人脸识别产品服务本身问题

当然,如果出现了某一时间段内,下载超时普遍增多,也有一定可能是腾讯云人脸识别下载代理本身的问题。

不过从人脸识别产品发布至今,从未发生过下载代理服务不稳定导致大面积报错,一方面是因为人脸识别产品的服务保证稳定性、高可用性等,另一方面是人脸识别对现网各种报错情况有实时监控和告警,大盘的整体监控情况一直很稳定。最后,如果真的腾讯云下载代理出现了问题,也会在最短的时间内完成自动化修复(扩缩容、剔除故障节点等),将现网影响控制到最小。

解决方案

万能方案

1.如果想要避免下载错误,用户可以不通过URL传参,而通过Image字段传入图片编码后的base64值。

这样腾讯云人脸识别服务器就无须下载图片,自然就没有下载超时,服务器会将用户传入的base64解码还原成图片。但是要注意,图片的base64值所占的字节空间都很大,这也就需要用户在上传base64到腾讯云时需要较大的带宽保证。

参数名称

必选

类型

描述

Image

String

图片 base64 数据,base64 编码后大小不可超过5M。jpg格式长边像素不可超过4000,其他格式图片长边像素不可超2000。支持PNG、JPG、JPEG、BMP,不支持 GIF 图片。

2.如果要使用URL传参,可将图片存储到腾讯云的COS对象存储服务上。

COS服务更为稳定,而且同属腾讯云产品,请求延迟会降低,充分保证请求速率。

特定方案

1.若用户自建图片服务器,要保证的图片服务器的各项负载不过高。

2.若用户使用海外服务器存储图片,最好将海外图片迁移到国内服务器上;或者使用CDN服务,这样在进行海外图片下载时,会利用CDN在国内的节点进行请求,从而保证了请求速率。

3.若客户使用CDN服务,要保证CDN服务的稳定,出现有异常时,联系CDN厂商定位。腾讯云可以辅助提供具体某次请求的下载耗时和请求时间等,前提是客户要提供近期图片下载错误的RequestId。

总结

通过这篇文章的阐述,希望大家能够明确“图片下载错误”的根本原因和解决方案,也多多使用腾讯云人脸识别产品哈。

0 人点赞