veImageX 上传,指将资源上传至 veImageX 服务存储中并使用 veImageX 进行丰富图片处理和分发。本文档将为您介绍 veImageX 的文件上传优势、上传方式等内容,以及介绍了如何更快存储文件和保证资源在各种复杂网络下能够成功放至存储空间中。
资源类型限制:为了更好地区分、管理和排查问题,veImageX 对服务分为以下两种逻辑类型:
说明
两种服务类型均不限制上传文件类型,仅对于上传操作来讲,两种类型没有区别。
上传方式 | 适用场景 | 使用说明 | 推荐 |
|---|---|---|---|
控制台上传 | 快速、便捷地将少量本地资源上传到 veImageX 的场景 | 选择一个状态正常的服务,登录控制台参考上传文件完成上传 | |
上传 SDK(服务端) | 自动化上传、大批量资源上传等场景 | 推荐 | |
上传 SDK(客户端) | UGC、PGC 等场景 | 推荐 | |
URL 拉取上传 | 文件没有存储在本地服务器或终端,需要通过公网访问的 URL 地址上传的场景 | 调用 FetchImageUrl接口,该接口支持同步和异步的资源抓取 | 推荐 |
客户端同步工具 | 适合将本地的资源批量进行同步到 veImageX 的工具,本质是对上传 SDK 的一种封装使用 | 推荐 | |
三方云存储迁移 | 文件存在于阿里云、腾讯云等其他三方云存储的场景 |
上传前准备:请参考开发准备提前获取 AK 和 SK, 并完成创建 veImageX 服务获取 ServiceID。
适用场景:待上传的数据存在于业务服务器侧、或者数据已经在服务器侧需要将数据做迁移。
若待迁移数据源于终端用户,推荐使用下述客户端上传方式接入,可以有效利用上传加速服务,强烈不建议业务前端或 App 端将文件数据传给业务服务端,然后再由业务服务端上传至 veImageX。原因是在整个上传过程中用户首先将数据上传到“业务服务端”再上传到 veImageX,“业务服务端”很容易成为整个上传链路的瓶颈,也使得上传加速效果大打折扣。

服务端上传时序图如下图所示,整体分为三步:
说明
~info模板获取图片 meta 信息。原因请见为什么不建议依赖 Commit 阶段返回的图片 meta 信息?veImageX 已提供 Golang/Python/JAVA/PHP/Nodejs 共五种语言版本的 SDK 供业务服务端接入,服务端 SDK 中封装了上述流程中的各个步骤,业务服务端只需调用 SDK 即可完成资源上传。
注意
StoreKeys 来达到指定文件名的效果。文件存储 URI:Tos-i-xxxx/StoreKey.文件后缀,您可直接使用精简方式访问源地址 http://域名/StoreKey.文件后缀。适用场景:终端用户资源上传一般是 UGC 上传场景。
上传加速:根据终端用户所在的物理位置、使用的运营商等信息,同时结合视频架构各个机房的资源健康状况,为用户分配一个最优的上传线路动态下发,可以有效提升区域用户的上传速度,同时可以快速支持机房容灾切换。

说明
说明
强烈不建议依赖此步骤返回的图片 meta 信息,有获取 meta 需求推荐在上传完成后拼接~info模板获取图片 meta 信息。原因请见为什么不建议依赖 Commit 阶段返回的图片 meta 信息?
业务服务端可以接入 veImageX SDK 来生成上传凭证,然后下发给客户端。
veImageX 已提供 Android、iOS 双端和 Web 端的资源上传 SDK 供业务 App 端、Web 端接入,具体请参考:
上传过程中会涉及到以下两类域名:
OpenAPI 域名:即请求上传 OpenAPI(包括 Apply 和 Commit)用到的域名。veImageX 提供的 OpenAPI 域名列表如下:
Region | 英文缩写 | OpenAPI 域名 |
|---|---|---|
中国 | cn-north-1 |
|
亚太东南(柔佛) | ap-southeast-1 |
|
上传域名:即上传数据时使用的域名,上传域名一般为 Apply 阶段动态下发的,业务无需关注。
SDK 上传:可以。上传非图片文件时上传过程不会报错,同时图像处理服务分发非图片文件时将统一作为二进制文件分发。
上传 Commit 阶段会带来额外的延迟开销和失败风险,尤其是在批量上传的场景。veImageX 认为资源上传的优先级更高,因此在获取 meta 超时或失败的时候,上传流程仍会返回成功,但相关的 meta 信息字段会返回空。
建议业务不要强依赖此处的 meta 返回值,您可选择通过~info模板来获取图片 meta 信息。
请关注 Commit 阶段返回的UriStatus字段,2000 表示上传成功,2001 表示上传失败。