带有可选 Base64 编码的 REST API 标头
Posted
技术标签:
【中文标题】带有可选 Base64 编码的 REST API 标头【英文标题】:Headers for REST API with optional Base64 encoding 【发布时间】:2019-05-18 17:49:13 【问题描述】:我们有一个媒体文件存储库,其他服务通过 REST API 与之通信。由于各种原因,我们希望存储库的用户能够通过 HTTP 直接上传和下载文件(文本文件为纯文本,二进制文件为字节数组)和使用 Base64 编码。我们希望将文件以 Base64 编码上传(PUT、POST)和请求下载(GET)这一事实反映在 HTTP 请求的标头中。
我们如何反映请求或请求响应的内容在 HTTP 标头中是 Base64 编码的事实?
到目前为止,我倾向于在 Content-Type
标头中的 mime 类型之后附加 ;base64
,例如 Content-Type: image/png;base64
。其他选项(X-
标头、Content-Encoding
)在in this related question 进行了讨论,但没有为我们的问题提供令人满意的解决方案。
【问题讨论】:
【参考方案1】:您必须使用Content-Transfer-Encoding
标头。
它在 RFC https://www.rfc-editor.org/rfc/rfc2045#page-14.
支持base64
等值,如"7bit" / "8bit" / "binary" / "quoted-printable" / "base64" / ietf-token / x-token
此标头专为您的情况设计,用作 MIME 类型的补充。
【讨论】:
HTTP 中没有 Content-Transfer-Encoding。以上是关于带有可选 Base64 编码的 REST API 标头的主要内容,如果未能解决你的问题,请参考以下文章
在 Django Rest Framework 中接收 Base64 编码的图像并保存到 ImageField
如何使 TensorFlow Hub 模型为 TensorFlow Serving REST 请求做好准备(使用 base64 编码图像)?