github.com/qjfoidnh/BaiduPCS-Go@v0.0.0-20231011165705-caa18a3765f3/docs/overview.md (about) 1 # 概述 2 3 百度开放云平台为广大开发者提供了访问PCS资源的系列接口,目前开放的接口主要分两个部分: 4 5 * 文件API: 6 7 主要提供文件上传、下载、拷贝、删除、搜索、断点续传及缩略图等功能。 8 9 * 结构化数据API: 10 11 主要提供结构数据存储、查询、删除及同步等功能。 12 13 通过对这些API的组合调用,开发者可以实现基本的用户文件操作以及结构数据存储和管理功能,也能够支持用户数据在多种不同终端上的同步,以提供更优质的用户体验。 14 15 除了原生的REST(Representational State Transfer,即“表述性状态转移”) API之外,百度开放云平台还提供了多种平台的SDK来帮助开发者缩短开发周期,具体请参考“SDK”部分相关内容。 16 17 ## PCS REST API使用说明 18 19 ### 开通PCS API权限 20 21 PCS所有REST API都必须经过开通权限才能正常使用。申请的方法请参考“开通PCS API权限”部分相关内容。 22 23 注意:PCS未提供分享接口,download等接口仅供个人获取数据使用。 access_token不能泄露,否则会直接封禁应用。 24 25 ### API请求方式说明 26 27 目前所有的提交类接口仅支持POST方式,查询类接口同时支持POST方式和GET方式。 28 29 PCS REST API的所有参数在传入时应当使用:UTF-8编码。 30 31 #### HTTP 请求方式 32 33 GET | POST 34 35 #### URL 36 37 https://pcs.baidu.com/rest/2.0/pcs/{object_name}?{query_string} 38 39 #### 参数说明 40 41 | 参数名称 | 描述 | 42 | :- | :- | 43 | object_name | PCS REST API操作实体名称,如:quota、file、thumbnail。 | 44 | query_string | 放在HTTP头部传入的参数,必须经过UrlEncode编码。 | 45 46 #### HTTP GET和POST方式使用说明 47 48 <table width="600" border="1" cellpadding="1" cellspacing="1"> 49 <tbody> 50 <tr> 51 <th scope="row" width="80">请求方式 52 </th> 53 <th scope="col">GET 54 </th> 55 <th scope="col">POST 56 </th> 57 </tr> 58 <tr> 59 <th scope="row">URL 60 </th> 61 <td colspan="2">https://pcs.baidu.com/rest/2.0/pcs/{object_name}?{query_string} 62 </td> 63 </tr> 64 <tr> 65 <th scope="row">请求参数 66 </th> 67 <td> 全部携带在 HTTPS 请求头部的 query_string 中。 68 </td> 69 <td> 既可携带在 query_string 中,也可携带在 HTTP Body 中。 70 <dl> 71 <dd> 72 <ul> 73 <li> method 及 access token 等参数必须携带在 query_string 中进行传输,请参考各个API的具体说明; 74 </li> 75 <li> 携带在 query_string 中的参数的值,必须进行 UrlEncode 编码; 76 </li> 77 <li> 携带在 HTTP Body 中的参数,则不需要进行 UrlEncode 编码。 78 </li> 79 </ul> 80 </dd> 81 </dl> 82 <div style="border:solid 1px #d7d7d7;padding:10px 16px 2px 16px; background-color:#fbfafb;"> 83 <div>注</div> 84 HTTP URL 长度有限,若参数值长度过长,建议将参数放在 HTTP Body 中进行传输。</div> 85 </td> 86 </tr> 87 <tr> 88 <th scope="row"> HTTP BODY 89 </th> 90 <td> 不携带HTTP Body 91 </td> 92 <td> multipart/form-data 93 </td> 94 </tr> 95 <tr> 96 <th scope="row">注意 97 </th> 98 <td colspan="2">如果 HTTP Body 和 query_string 存在相同的参数,则以 query_string 中的参数为准。 99 </td> 100 </tr> 101 </tbody> 102 </table> 103 104 #### 使用示例 105 106 1. GET请求: 107 108 用HTTP GET请求方式发送两个参数:key1=value1和key2=value2。 109 110 https://pcs.baidu.com/rest/2.0/pcs/quota?key1=UrlEncode(value1)&key2=UrlEncode(value2) 111 112 2. POST请求: 113 114 分别用两种方式使用POST方式发送三个参数:key1=value1、key2=value2和key3=value3;方式一与方式二效果等同。 115 116 ##### 方式一: 117 118 POST /rest/2.0/pcs/quota?key2=value2&key3=value3 HTTP/1.1 119 120 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 121 Pragma: no-cache 122 Accept: */* 123 Host:pcs.baidu.com 124 Content-Length:123 125 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryS0JIa4uHF7yHd8xJ 126 ------WebKitFormBoundaryS0JIa4uHF7yHd8xJ 127 Content-Disposition: form-data; name="key1" 128 value1 129 ------WebKitFormBoundaryS0JIa4uHF7yHd8xJ— 130 131 ##### 方式二: 132 133 POST /rest/2.0/pcs/quota HTTP/1.1 134 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 135 Pragma: no-cache 136 Accept: */* 137 Host:pcs.baidu.com 138 Content-Length:123 139 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryS0JIa4uHF7yHd8xJ 140 ------WebKitFormBoundaryS0JIa4uHF7yHd8xJ 141 Content-Disposition: form-data; name="key1" 142 143 value1 144 ------WebKitFormBoundaryS0JIa4uHF7yHd8xJ 145 Content-Disposition: form-data; name="key2" 146 147 value2 148 ------WebKitFormBoundaryS0JIa4uHF7yHd8xJ 149 Content-Disposition: form-data; name="key3" 150 151 value3 152 ------WebKitFormBoundaryS0JIa4uHF7yHd8xJ-- 153 154 ### API响应格式说明 155 156 <table> 157 <tbody> 158 <tr> 159 <th scope="col"> 160 </th> 161 <th scope="col">正常请求 162 </th> 163 <th scope="col">异常请求 164 </th> 165 </tr> 166 <tr> 167 <th scope="row">HTTP状态码 168 </th> 169 <td> 200 OK 170 </td> 171 <td> 4** : 用户请求错误。<br>5** :server服务失败。 172 </td> 173 </tr> 174 <tr> 175 <th scope="row">HTTP BODY 176 </th> 177 <td> API响应内容 178 </td> 179 <td> 异常请求的返回值为JSON字符串。<br>例如:<br>{<br>"error_code":110,<br>"error_msg":"Access token invalid or no longer valid",<br>"request_id":729562373<br>}<br>说明:<br> 180 <dl> 181 <dd>- error_code:错误码;<br> 182 </dd> 183 <dd>- error_msg: 错误描述信息;<br> 184 </dd> 185 <dd>- request_id: 请求ID。由server生成,用于追查和定位请求日志。<br> 186 </dd> 187 </dl> 188 </td> 189 </tr> 190 </tbody> 191 </table>