Files
BaiduPCS-Go/docs/overview.md
2020-11-07 02:28:22 +08:00

6.4 KiB
Raw Permalink Blame History

概述

百度开放云平台为广大开发者提供了访问PCS资源的系列接口目前开放的接口主要分两个部分

  • 文件API:

    主要提供文件上传、下载、拷贝、删除、搜索、断点续传及缩略图等功能。

  • 结构化数据API:

    主要提供结构数据存储、查询、删除及同步等功能。

通过对这些API的组合调用开发者可以实现基本的用户文件操作以及结构数据存储和管理功能也能够支持用户数据在多种不同终端上的同步以提供更优质的用户体验。

除了原生的RESTRepresentational State Transfer即“表述性状态转移” API之外百度开放云平台还提供了多种平台的SDK来帮助开发者缩短开发周期具体请参考“SDK”部分相关内容。

PCS REST API使用说明

开通PCS API权限

PCS所有REST API都必须经过开通权限才能正常使用。申请的方法请参考“开通PCS API权限”部分相关内容。

注意PCS未提供分享接口download等接口仅供个人获取数据使用。 access_token不能泄露否则会直接封禁应用。

API请求方式说明

目前所有的提交类接口仅支持POST方式查询类接口同时支持POST方式和GET方式。

PCS REST API的所有参数在传入时应当使用UTF-8编码。

HTTP 请求方式

GET | POST

URL

https://pcs.baidu.com/rest/2.0/pcs/{object_name}?{query_string}

参数说明

参数名称 描述
object_name PCS REST API操作实体名称quota、file、thumbnail。
query_string 放在HTTP头部传入的参数必须经过UrlEncode编码。

HTTP GET和POST方式使用说明

请求方式 GET POST
URL https://pcs.baidu.com/rest/2.0/pcs/{object_name}?{query_string}
请求参数 全部携带在 HTTPS 请求头部的 query_string 中。 既可携带在 query_string 中,也可携带在 HTTP Body 中。
  • method 及 access token 等参数必须携带在 query_string 中进行传输请参考各个API的具体说明
  • 携带在 query_string 中的参数的值,必须进行 UrlEncode 编码;
  • 携带在 HTTP Body 中的参数,则不需要进行 UrlEncode 编码。
HTTP URL 长度有限,若参数值长度过长,建议将参数放在 HTTP Body 中进行传输。
HTTP BODY 不携带HTTP Body multipart/form-data
注意 如果 HTTP Body 和 query_string 存在相同的参数,则以 query_string 中的参数为准。

使用示例

  1. GET请求

    用HTTP GET请求方式发送两个参数key1=value1和key2=value2。

    https://pcs.baidu.com/rest/2.0/pcs/quota?key1=UrlEncode(value1)&key2=UrlEncode(value2)

  2. POST请求

    分别用两种方式使用POST方式发送三个参数key1=value1、key2=value2和key3=value3方式一与方式二效果等同。

方式一:
POST /rest/2.0/pcs/quota?key2=value2&key3=value3 HTTP/1.1

User-Agent: curl/7.12.1 (x86_64-redhat-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.1.2 libidn/0.5.6
Pragma: no-cache
Accept: */*
Host:pcs.baidu.com
Content-Length:123
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryS0JIa4uHF7yHd8xJ
------WebKitFormBoundaryS0JIa4uHF7yHd8xJ
Content-Disposition: form-data; name="key1"
value1
------WebKitFormBoundaryS0JIa4uHF7yHd8xJ—
方式二:
POST /rest/2.0/pcs/quota HTTP/1.1
User-Agent: curl/7.12.1 (x86_64-redhat-linux-gnu) libcurl/7.12.1 OpenSSL/0.9.7a zlib/1.2.1.2 libidn/0.5.6
Pragma: no-cache
Accept: */*
Host:pcs.baidu.com
Content-Length:123
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryS0JIa4uHF7yHd8xJ
------WebKitFormBoundaryS0JIa4uHF7yHd8xJ
Content-Disposition: form-data; name="key1"

value1
------WebKitFormBoundaryS0JIa4uHF7yHd8xJ
Content-Disposition: form-data; name="key2"

value2
------WebKitFormBoundaryS0JIa4uHF7yHd8xJ
Content-Disposition: form-data; name="key3"

value3
------WebKitFormBoundaryS0JIa4uHF7yHd8xJ--

API响应格式说明

正常请求 异常请求
HTTP状态码 200 OK 4** : 用户请求错误。
5** server服务失败。
HTTP BODY API响应内容 异常请求的返回值为JSON字符串。
例如:
{
"error_code":110,
"error_msg":"Access token invalid or no longer valid",
"request_id":729562373
}
说明:
- error_code错误码
- error_msg: 错误描述信息;
- request_id: 请求ID。由server生成用于追查和定位请求日志。