GetQR API 目前处于 Beta 阶段,仅向部分工作区开放。正式发布前,细节可能会有所变化。
上传文件
1
注册文件
调用注册文件上传,并提供文件的
target、contentType 和 size。target 决定可接受的内容类型和大小上限。您会获得一个 fileId 和一个 uploadUrl。2
发送文件
通过
PUT 请求将文件发送到 uploadUrl。其 Content-Type 和 Content-Length 必须与您注册时的 contentType 和 size 完全一致,否则会被拒绝。该 URL 已预签名,因此请勿添加 API 密钥。它会在 10 分钟后过期。限制
- 纯 MIME 类型。 只发送一个小写的类型和子类型,例如
image/png。带;charset=等参数或多个类型的列表都会被拒绝。 - 不支持 SVG。 不接受
image/svg+xml等基于 XML 的类型。请上传image/png或image/jpeg等位图。
请求头
string
必填
application/json。注册文件上传
POST /api/v1/files
注册文件,并返回一个用于上传的预签名 URL。此调用本身不会上传文件。
string
必填
文件的 MIME 类型,例如
application/pdf,不带参数。上传请求必须发送完全相同的 Content-Type。integer
必填
文件的准确大小(字节),为正整数。会根据该用途的大小上限进行检查。上传请求必须发送完全相同的
Content-Length。string
原始文件名,最多 255 个字符,用于在控制台中显示。包含
/ 或 \ 的路径会被拒绝。string
作为
fileId 或 logoOptions.fileId 传入的 ID。string
用于
PUT 文件的预签名 URL。integer
距离
uploadUrl 过期的秒数:600。string
上传使用的 HTTP 方法:
PUT。常见问题
422 "Content type … is not allowed for target"
422 "Content type … is not allowed for target"
内容类型与用途不匹配。例如,
pdf 只接受 application/pdf。请参阅限制。422 "must be a single lowercase type/subtype"
422 "must be a single lowercase type/subtype"
请以小写形式发送内容类型,且不带参数:应为
image/png,而不是 Image/PNG 或 image/png; charset=utf-8。422 "File is too large for target"
422 "File is too large for target"
声明的
size 超过了该用途的大小上限。请先压缩文件,再进行注册。上传到 uploadUrl 失败
上传到 uploadUrl 失败
该 URL 在注册文件 10 分钟后过期,并且请求必须发送与注册时完全一致的
Content-Type 和 Content-Length。请重新注册文件以获取新的 URL。创建二维码时返回 422 "is registered but its content was never uploaded"
创建二维码时返回 422 "is registered but its content was never uploaded"
您已注册文件,但向
uploadUrl 发送的 PUT 请求未完成。请先上传文件,再创建二维码。创建二维码时返回 422 "was uploaded to …"
创建二维码时返回 422 "was uploaded to …"
文件注册时使用了其他用途,例如将
image 文件用于 pdf 二维码。请使用匹配的用途重新注册上传。创建二维码时返回 404 "File … was not found"
创建二维码时返回 404 "File … was not found"
该
fileId 不存在。请从注册文件上传的响应中获取它。