如何通过Google Drive REST API上传Base64格式图片?
使用Google Drive REST API上传Base64图片(无SDK/包)
核心步骤说明
预处理Base64字符串
- 移除Base64字符串开头的
data:{mimeType};base64,前缀,仅保留纯编码部分。 - 将纯Base64编码解码为二进制字节流,这是API接收的文件内容格式。
- 移除Base64字符串开头的
准备认证信息
- 需获取有效的OAuth2访问令牌,申请令牌时需包含
https://www.googleapis.com/auth/drive.file权限范围,确保能创建文件。
- 需获取有效的OAuth2访问令牌,申请令牌时需包含
构造Multipart请求
Google Drive的multipart上传接口需要同时传递文件元数据和二进制内容,请求结构如下:
请求URL
POST https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart
请求头
Authorization: Bearer {你的OAuth2访问令牌} Content-Type: multipart/related; boundary=自定义分隔符(如my_boundary_123)
请求体格式
--my_boundary_123 Content-Type: application/json; charset=UTF-8 { "name": "上传的文件名.png", "mimeType": "image/png" // 替换为实际图片的MIME类型,如image/jpeg } --my_boundary_123 Content-Type: image/png // 与上面的mimeType一致 [此处放置解码后的二进制图片字节流] --my_boundary_123--
关键注意事项
- 自定义分隔符需在请求头和请求体中保持完全一致,且不能与请求体中的其他内容重复。
- 元数据中的
mimeType必须与图片实际类型匹配,否则可能导致文件无法正常预览。 - 确保访问令牌未过期且权限足够,若令牌无效会返回401/403错误。
内容的提问来源于stack exchange,提问作者Vishu
相关产品推荐
相关产品推荐

