QingCloud 文档 – API 参考 - kaiyun官方网站下载手机网页 /storage/object-storage/api/ Recent content in API 参考 on QingCloud 文档 Hugo -- gohugo.io Wed, 25 Nov 2020 10:08:56 +0900 Storage: 概述 /storage/object-storage/api/overview/ Tue, 17 Aug 2021 10:08:56 +0900 /storage/object-storage/api/overview/ <p>QingStor 对象存储服务旨在为用户提供稳定可靠,安全易用,空间无限的云存储服务。可用于存储任意类型,任意数量,任意大小的非结构化数据。</p> <p>需注意的是,QingStor 对象存储支持的单个对象最大为 50T。</p> <p>本文将详细介绍 QingStor 对象存储提供的 API,以及指导用户如何使用该 API。</p> <h2 id="总览">总览</h2> <p>QingStor 对象存储服务提供的 API 符合 REST (Representational State Transfer) 风格所定义的语义,即:通过 URL 指定想要访问的资源,并使用标准的 HTTP 方法定义对资源的操作方式。</p> <h2 id="api-列表">API 列表</h2> <ul> <li><a href="/storage/object-storage/api/bucket/">Bucket API</a></li> <li><a href="/storage/object-storage/api/object/">Object API</a></li> <li><a href="/storage/object-storage/api/service/">Service API</a></li> </ul> Storage: 公共字段 /storage/object-storage/api/common_header/ Wed, 25 Nov 2020 10:08:56 +0900 /storage/object-storage/api/common_header/ <h2 id="请求头字段-request-header">请求头字段 (Request Header)</h2> <h3 id="host">Host</h3> <p>指定所请求资源的云服务器名及端口。在 HTTP/1.1 中为必填字段,可以为空值。HTTP/1.0 中为可选字段。详情可参考 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.23">RFC 文档</a>。</p> <h3 id="authorization">Authorization</h3> <p>认证所需信息。详情可参考 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.8">RFC 文档</a>。</p> <h3 id="date">Date</h3> <p>客户端请求发送时的时间。格式由 RFC 822 定义,如:</p> <pre tabindex="0"><code>Date: Tue, 15 Nov 1994 08:12:31 GMT </code></pre><p>详情可参考 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.18">RFC 文档</a>。</p> <h3 id="content-length">Content-Length</h3> <p>请求的内容长度,以字节为单位。详情可参考 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13">RFC 文档</a>。</p> <h3 id="content-type">Content-Type</h3> <p>请求实体的 MIME 类型。总长度不可超过 255 个字符,且应该符合 RFC 文档的规范。若客户端未指定 <code>Content-Type</code> 或值为空,服务端将按 <code>application/octet-stream</code> 处理。详情可参考 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">RFC 文档</a>。</p> <h3 id="content-md5">Content-MD5</h3> <p>请求实体的 MD5 校验值,用来验证数据的完整性。详情可参考 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.15">RFC 文档</a>。</p> <h3 id="expect">Expect</h3> <p>用来确认服务端是否支持特定行为。当 <code>Expect</code> 的值为 <code>100-continue</code> 时,客户端在发送请求实体前,等待服务器的确认,若服务器拒绝该请求,则请求实体将不会被发送。详情可参考 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.20">RFC 文档</a>。</p> <h3 id="range">Range</h3> <p>用于指定请求的内容范围。取值可为以下三类,目前不支持 rfc2616 中定义的按逗号分隔的多段 Range:</p> <ul> <li><code>bytes=start_offset-stop_offset</code> 将返回从 <strong>start_offset</strong> 开始,至 <strong>stop_offset</strong> 的数据,单位为字节,包含 <strong>stop_offset</strong> 所对应的字节。如 <code>bytes=0-0</code>,将返回第一个字节的数据。</li> <li><code>bytes=start_offset-</code> 将返回从 <strong>start_offset</strong> 开始之后的数据,单位为字节,包含 <strong>start_offset</strong> 所对应的字节。</li> <li><code>bytes=-suffix_length</code> 将返回文件末尾长度为 <strong>suffix_length</strong> 的数据。若 <strong>suffix_length</strong> 大于文件长度,那么将返回整个文件。</li> </ul> <p>若指定了 Range 头字段,那么成功的情况下 HTTP 返回码为 206,若参数有误或 <strong>start_offset</strong> 超出文件边界的情况下返回 416 错误。 详情可参考 <a href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35">RFC 文档</a>。</p> <h2 id="响应头字段-response-header">响应头字段 (Response Header)</h2> <h3 id="content-length-1">Content-Length</h3> <p>服务端返回的消息实体的传输长度,以字节为单位。详情可参考 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.13">RFC 文档</a>。</p> <h3 id="content-type-1">Content-Type</h3> <p>服务端返回的消息实体的 MIME 类型。仅支持 <code>application/json</code> 格式。详情可参考 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">RFC 文档</a>。</p> <h3 id="connection">Connection</h3> <p>标识连接是否已关闭,有效值为 <code>keep-alive</code> 和 <code>close</code>。详情可参考 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.10">RFC 文档</a>。</p> <h3 id="date-1">Date</h3> <p>服务端返回响应时的日期和时间。格式由 RFC 822 定义,如:</p> <pre tabindex="0"><code>Date: Tue, 15 Nov 1994 08:12:31 GMT </code></pre><p>详情可参考 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.18">RFC 文档</a>。</p> <h3 id="etag">ETag</h3> <p>对于通过 PUT Object 上传的对象,该值由 QingStor 服务端生成,用于标识 Object 的内容是否已被更新。需要注意的是,这里提到的 Object 内容,不包括元数据。</p> <p>对于通过 Multipart Upload 上传的对象,该值由调用 Complete Multipart Upload 接口时,请求头中的 ETag 来设置。若 ETag 值未被设置,QingStor 服务端,将会计算 ETag 值,并保存在 QingStor 的服务端。</p> <p>详情可参考 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.19">RFC 文档</a>。</p> <h3 id="server">Server</h3> <p>Web服务器软件信息,固定为 <code>QingStor</code>。详情可参考 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.38">RFC 文档</a>。</p> <h3 id="x-qs-request-id">x-qs-request-id</h3> <p>服务端会为每个请求生成并返回一个唯一标示。用户提交工单时如果能附带此 ID 将有助于 QingStor 对象存储的研发团队定位问题。</p> <h3 id="content-range">Content-Range</h3> <p>当请求中附带了 <code>Range</code> 头字段时,响应中的 <code>Content-Range</code> 头说明了实际返回的数据在文件中的位置。格式为:</p> <pre tabindex="0"><code>bytes start_offset-stop_offset/file_size </code></pre><p>如一个长度为500字节的文件,在请求中有 <code>Range: bytes=0-0</code> 的时候,响应中附带 <code>Content-Range: bytes 0-0/500</code>。详情可参考 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.16">RFC 文档</a>。</p> <h3 id="x-qs-content-copy-range">x-qs-content-copy-range</h3> <p>当请求中附带了 <code>x-qs-copy-range</code> 头字段时,响应中的 <code>x-qs-content-copy-range</code> 头说明了实际返回的数据在文件中的位置。格式为:</p> <pre tabindex="0"><code>bytes start_offset-stop_offset/file_size </code></pre><p>如一个长度为500字节的文件,在请求中有 <code>x-qs-copy-range: bytes=0-0</code> 的时候,响应中附带 <code>x-qs-content-copy-range: bytes 0-0/500</code></p> Storage: 对象元数据 /storage/object-storage/api/metadata/ Fri, 28 Feb 2020 10:08:56 +0900 /storage/object-storage/api/metadata/ <p>QingStor 对象存储定义对象元数据是附属于对象的数据结构,不能脱离于对象而独立存在。</p> <p>对象元数据包括标准 HTTP 头与自定义元数据。用户在创建对象时,可以在请求头中添加元数据信息。当用户在获取对象时,QingStor 对象存储服务端会返回请求头中添加的元数据信息。</p> <p>QingStor 对象存储服务端也支持用户对元数据的修改。其中可供修改的元数据包括 <code>Cache-Control</code>,<code>Cache-Disposition</code>,<code>Content-Encoding</code>,<code>Content-Type</code> 以及 <code>Expires</code> 等 5 个标准 HTTP 头和用户自定义的元数据。</p> <h2 id="注意事项">注意事项</h2> <ul> <li>QingStor 对象存储支持用户对元数据的增加与修改。匿名用户不支持该操作,用户需拥有该 Object 所在 Bucket 的读写权限。</li> <li>当用户复制源对象到目标对象时,默认情况下,QingStor 对象存储会将源对象的元数据复制给目标对象。</li> <li>当用户移动源对象到目标对象时,目标对象将保留源对象的元数据。</li> <li>当用户删除对象时,该对象的元数据将被删除。</li> </ul> <h2 id="可修改的元数据">可修改的元数据</h2> <p>支持修改的对象元数据包括如下标准 HTTP 头与自定义元数据。详细说明如下:</p> <h3 id="标准-http-头">标准 HTTP 头</h3> <p>QingStor 对象存储支持修改的标准 HTTP 头为:</p> <table> <thead> <tr> <th>名称</th> <th>类型</th> <th>说明</th> <th>是否必须</th> </tr> </thead> <tbody> <tr> <td>Cache-Control</td> <td>String</td> <td>指定请求和响应遵循的缓存机制。了解更多信息见 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9">RFC2616#14.9</a>。</td> <td>否</td> </tr> <tr> <td>Cache-Disposition</td> <td>String</td> <td>指定对象的访问形式。<br>- inline:直接在浏览器中打开对象。<br>- attachment:将对象下载到本地。 <br>- 了解更多信息见 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html#sec19.5.1">RFC2616#19.5</a>。</td> <td>否</td> </tr> <tr> <td>Content-Encoding</td> <td>String</td> <td>指定对象的内容编码类型。了解更多信息见 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.11">RFC2616#14.11</a>。</td> <td>否</td> </tr> <tr> <td>Content-Type</td> <td>String</td> <td>指定请求实体的MIME类型。了解更多信息见 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.17">RFC2616#14.17</a>。</td> <td>否</td> </tr> <tr> <td>Expires</td> <td>String</td> <td>响应过期的日期和时间。了解更多信息见 <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21">RFC2616#14.21</a>。</td> <td>否</td> </tr> </tbody> </table> <p>除以上字段外,其他标准 HTTP 头不支持修改。其他标准 HTTP 头参考 <a href="/storage/object-storage/api/common_header/#%E8%AF%B7%E6%B1%82%E5%A4%B4%E5%AD%97%E6%AE%B5-request-header">公共请求头</a>。</p> <h3 id="自定义元数据">自定义元数据</h3> <p>QingStor 对象存储支持用户自定义元数据,也支持用户修改这部分元数据信息。自定义元数据是指前缀为 <code>x-qs-meta-</code> 的键值对。QingStor 对象存储对自定义元数据的大小及有效字符均有限制。详细说明如下:</p> <p><strong>有效字符集:</strong></p> <ul> <li>自定义元数据中的 <code>key</code> 只能由英文字母、数字、连接符 <code>-</code>、下划线 <code>_</code> 以及英文句号 <code>.</code> 组成。</li> <li>自定义元数据中的 <code>key</code> 的长度不能超过 512 字节,且前缀 <code>x-qs-meta-</code> 不包括在 <code>key</code> 的长度计算范围内。</li> <li>自定义元数据中的 <code>value</code> 只能由 <a href="https://en.wikipedia.org/wiki/ASCII#Printable_characters">Printable ASCII 字符</a> 组成。</li> <li>自定义元数据中的 <code>value</code> 若带有 Non-printable ASCII 或 Non-ASCII 字符,用户可以使用 <a href="https://www.ietf.org/rfc/rfc2047.txt">rfc2047</a> 或者 <a href="https://en.wikipedia.org/wiki/Percent-encoding">percent encoding</a> 来对其进行编码。也可以选择其他编码方式,只要编码后的字符集是 Printable ASCII 字符即可。</li> <li>自定义元数据总大小不能超过 2KB。</li> <li>由于 HTTP 头字段不区分大小写,所以自定义元数据的 <code>key</code> 也不区分大小写。</li> </ul> <h2 id="创建元数据">创建元数据</h2> <p>根据前文说明,我们知道对象元数据不能脱离于对象而独立存在。因此当创建对象的时候,相应的该对象的元数据也跟随创建。</p> <p>支持该操作的 API 如下:</p> <table> <thead> <tr> <th>API</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td><a href="/storage/object-storage/api/object/basic_opt/put/">PutObject</a></td> <td>当向 Bucket 上传一个对象时,可以指定 <a href="#%E5%8F%AF%E4%BF%AE%E6%94%B9%E7%9A%84%E5%85%83%E6%95%B0%E6%8D%AE">可修改的元数据</a> 一节中定义的请求头来创建可供修改的对象元数据。</td> </tr> <tr> <td><a href="/storage/object-storage/api/object/post/">PostObject</a></td> <td>当通过 HTML 表单的方式上传一个对象时,可以使用 <a href="#%E5%8F%AF%E4%BF%AE%E6%94%B9%E7%9A%84%E5%85%83%E6%95%B0%E6%8D%AE">可修改的元数据</a> 一节中定义的请求头来创建可供修改的对象元数据。</td> </tr> <tr> <td><a href="/storage/object-storage/api/object/multipart/initiate/">InitiateMultipartUpload</a></td> <td>当初始化一个分段上传时,可以使用 <a href="#%E5%8F%AF%E4%BF%AE%E6%94%B9%E7%9A%84%E5%85%83%E6%95%B0%E6%8D%AE">可修改的元数据</a> 一节中定义的请求头来创建可供修改的对象元数据。</td> </tr> </tbody> </table> <h2 id="获取元数据">获取元数据</h2> <p>用户可通过下载对象或获取对象信息的方式来获取该对象携带的元数据信息。支持该操作的 API 如下:</p> <table> <thead> <tr> <th>API</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td><a href="/storage/object-storage/api/object/basic_opt/get/">GetObject</a></td> <td>下载对象时,QingStor 对象存储服务端会返回该对象创建时所包含的元数据信息。</td> </tr> <tr> <td><a href="/storage/object-storage/api/object/basic_opt/head/">HeadObject</a></td> <td>获取对象元数据时,QingStor 对象存储服务端会返回该对象创建时所包含的元数据信息。</td> </tr> </tbody> </table> <h2 id="复制修改元数据">复制修改元数据</h2> <p>用户可通过复制对象的方式,来复制或修改对象元数据。当用户调用如下 API 复制对象时,默认将源对象的元数据复制到目标对象:</p> <table> <thead> <tr> <th>API</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td><a href="/storage/object-storage/api/object/basic_opt/copy/">PutObject - Copy</a></td> <td>当复制一个源对象到目标对象时,默认将源对象的元数据信息复制至目标对象</td> </tr> </tbody> </table> <h3 id="复制源对象的元数据">复制源对象的元数据</h3> <p>复制源对象到目标对象,此时会默认将源对象的元数据信息复制至目标对象。无需添加额外的消息头。</p> <h3 id="更新目标对象的元数据">更新目标对象的元数据</h3> <p>复制对象时,可在消息头中指定 <a href="#%E5%8F%AF%E4%BF%AE%E6%94%B9%E7%9A%84%E5%85%83%E6%95%B0%E6%8D%AE">可修改的元数据</a> 一节中定义的请求头来更新目标对象的元数据。此外,还需添加如下头字段,并将其设置为 <code>replace</code>。此时源对象的元数据信息不变,目标对象的元数据根据请求头中的设定而更新。</p> <table> <thead> <tr> <th>头字段</th> <th>类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>x-qs-metadata-directive</td> <td>String</td> <td>此选项用来修改元数据。有效值为 <code>copy</code> 或 <code>replace</code> 。默认值为 <code>copy</code>。<br>copy:复制源对象的元数据。<br>replace:表示修改对象的元数据</td> </tr> </tbody> </table> <h3 id="修改源对象的元数据">修改源对象的元数据</h3> <p>用户通过调用复制对象 API,并指定如下头字段,且将其设置为 <code>replace</code>,即可完成修改源对象的元数据操作。可修改的元数据参考 <a href="#%E5%8F%AF%E4%BF%AE%E6%94%B9%E7%9A%84%E5%85%83%E6%95%B0%E6%8D%AE">前文内容</a>。</p> <table> <thead> <tr> <th>头字段</th> <th>类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>x-qs-metadata-directive</td> <td>String</td> <td>此选项用来修改元数据。有效值为 <code>copy</code> 或 <code>replace</code> 。默认值为 <code>copy</code>。<br>copy:复制源对象的元数据。<br>replace:表示修改对象的元数据</td> </tr> </tbody> </table> <h2 id="移动元数据">移动元数据</h2> <p>用户可通过移动对象的方式来移动该对象携带的元数据信息。支持该操作的 API 如下:</p> <table> <thead> <tr> <th>API</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td><a href="/storage/object-storage/api/object/basic_opt//move/">PutObject - Move</a></td> <td>当移动一个源对象到目标对象时,源对象的元数据信息将保留。</td> </tr> </tbody> </table> <h2 id="示例">示例</h2> <h3 id="修改对象的元数据">修改对象的元数据</h3> <ol> <li>创建一个命名为 <code>copy_to_self</code> 的对象,并附带元数据:<code>x-qs-meta-id: 0</code> 和 <code>Cache-Control: no-cache</code>。</li> </ol> <p>请求服务端:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#a6e22e">PUT</span> /copy_to_self <span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> </span></span><span style="display:flex;"><span>Host<span style="color:#f92672">:</span> <span style="color:#ae81ff">mybucket.pek3a.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>Cache-Control<span style="color:#f92672">:</span> <span style="color:#ae81ff">no-cache</span> </span></span><span style="display:flex;"><span>x-qs-meta-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">0</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;authorization string&gt;</span> </span></span></code></pre></div><p>服务端返回:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> <span style="color:#ae81ff">201</span> <span style="color:#a6e22e">CREATED</span> </span></span><span style="display:flex;"><span>Server<span style="color:#f92672">:</span> <span style="color:#ae81ff">QingStor</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>x-qs-request-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;x-qs-request-id&gt;</span> </span></span></code></pre></div><ol start="2"> <li>调用 API:<a href="/storage/object-storage/api/object/basic_opt/copy/">PUT Object COPY</a> 将对象 <code>copy_to_self</code> 的元数据修改为: <code>x-qs-meta-id: 1</code> 与 <code>Cache-Control: max-age=31536000</code>。并添加头字段:<code>x-qs-metadata-directive: replace</code>。</li> </ol> <p>请求服务端:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#a6e22e">PUT</span> /copy_to_self <span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> </span></span><span style="display:flex;"><span>Host<span style="color:#f92672">:</span> <span style="color:#ae81ff">mybucket.pek3a.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>Cache-Control<span style="color:#f92672">:</span> <span style="color:#ae81ff">max-age=31536000</span> </span></span><span style="display:flex;"><span>x-qs-metadata-directive<span style="color:#f92672">:</span> <span style="color:#ae81ff">replace</span> </span></span><span style="display:flex;"><span>x-qs-copy-source<span style="color:#f92672">:</span> <span style="color:#ae81ff">/mybucket/copy_to_self</span> </span></span><span style="display:flex;"><span>x-qs-meta-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">1</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;authorization string&gt;</span> </span></span></code></pre></div><p>服务端返回:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> <span style="color:#ae81ff">201</span> <span style="color:#a6e22e">CREATED</span> </span></span><span style="display:flex;"><span>Server<span style="color:#f92672">:</span> <span style="color:#ae81ff">QingStor</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>x-qs-request-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;x-qs-request-id&gt;</span> </span></span></code></pre></div><ol start="3"> <li>调用 API:<a href="/storage/object-storage/api/object/basic_opt/head/">HEAD Object</a> 验证对象的元数据修改成功。</li> </ol> <p>请求服务端:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#a6e22e">HEAD</span> /copy_to_self <span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> </span></span><span style="display:flex;"><span>Host<span style="color:#f92672">:</span> <span style="color:#ae81ff">mybucket.pek3a.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;authorization string&gt;</span> </span></span></code></pre></div><p>服务端返回:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> <span style="color:#ae81ff">200</span> <span style="color:#a6e22e">OK</span> </span></span><span style="display:flex;"><span>Server<span style="color:#f92672">:</span> <span style="color:#ae81ff">QingStor</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>Cache-Control<span style="color:#f92672">:</span> <span style="color:#ae81ff">max-age=31536000</span> </span></span><span style="display:flex;"><span>x-qs-meta-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">1</span> </span></span><span style="display:flex;"><span>x-qs-request-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;x-qs-request-id&gt;</span> </span></span></code></pre></div><h3 id="复制对象-复制源对象的元数据">复制对象, 复制源对象的元数据</h3> <ol> <li>创建一个命名为 <code>source_object</code> 的对象,并附带元数据:<code>x-qs-meta-id: 0</code> 和 <code>Cache-Control: no-cache</code>。</li> </ol> <p>请求服务端:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#a6e22e">PUT</span> /source_object <span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> </span></span><span style="display:flex;"><span>Host<span style="color:#f92672">:</span> <span style="color:#ae81ff">mybucket.pek3a.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>Cache-Control<span style="color:#f92672">:</span> <span style="color:#ae81ff">no-cache</span> </span></span><span style="display:flex;"><span>x-qs-meta-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">0</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;authorization string&gt;</span> </span></span></code></pre></div><p>服务端返回:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> <span style="color:#ae81ff">201</span> <span style="color:#a6e22e">CREATED</span> </span></span><span style="display:flex;"><span>Server<span style="color:#f92672">:</span> <span style="color:#ae81ff">QingStor</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>x-qs-request-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;x-qs-request-id&gt;</span> </span></span></code></pre></div><ol start="2"> <li>调用 API:<a href="/storage/object-storage/api/object/basic_opt/copy/">PUT Object COPY</a> 复制源对象 <code>source_object</code> 到目标对象 <code>dest_object</code>。复制 <code>source_object</code> 的元数据到 <code>dest_object</code> 为默认操作,故,这里可以省略请求头 <code>x-qs-metadata-directive</code>。</li> </ol> <p>请求服务端:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#a6e22e">PUT</span> /dest_object <span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> </span></span><span style="display:flex;"><span>Host<span style="color:#f92672">:</span> <span style="color:#ae81ff">mybucket.pek3a.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>x-qs-copy-source<span style="color:#f92672">:</span> <span style="color:#ae81ff">/mybucket/source_object</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;authorization string&gt;</span> </span></span></code></pre></div><p>服务端返回:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> <span style="color:#ae81ff">201</span> <span style="color:#a6e22e">CREATED</span> </span></span><span style="display:flex;"><span>Server<span style="color:#f92672">:</span> <span style="color:#ae81ff">QingStor</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>x-qs-request-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;x-qs-request-id&gt;</span> </span></span></code></pre></div><ol start="3"> <li>调用 API:<a href="/storage/object-storage/api/object/basic_opt/head/">HEAD Object</a> 验证目标对象 <code>dest_object</code> 的元数据与源对象 <code>source_object</code> 的元数据相同。</li> </ol> <p>请求服务端:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#a6e22e">HEAD</span> /dest_object <span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> </span></span><span style="display:flex;"><span>Host<span style="color:#f92672">:</span> <span style="color:#ae81ff">mybucket.pek3a.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;authorization string&gt;</span> </span></span></code></pre></div><p>服务端返回:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> <span style="color:#ae81ff">200</span> <span style="color:#a6e22e">OK</span> </span></span><span style="display:flex;"><span>Server<span style="color:#f92672">:</span> <span style="color:#ae81ff">QingStor</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>Cache-Control<span style="color:#f92672">:</span> <span style="color:#ae81ff">no-cache</span> </span></span><span style="display:flex;"><span>x-qs-meta-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">0</span> </span></span><span style="display:flex;"><span>x-qs-request-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;x-qs-request-id&gt;</span> </span></span></code></pre></div><h3 id="复制对象-在请求头中指定元数据">复制对象, 在请求头中指定元数据</h3> <ol> <li>创建一个命名为 <code>source_object</code> 的对象,并附带元数据:<code>x-qs-meta-id: 0</code> 和 <code>Cache-Control: no-cache</code>。</li> </ol> <p>请求服务端:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#a6e22e">PUT</span> /source_object <span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> </span></span><span style="display:flex;"><span>Host<span style="color:#f92672">:</span> <span style="color:#ae81ff">mybucket.pek3a.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>Cache-Control<span style="color:#f92672">:</span> <span style="color:#ae81ff">no-cache</span> </span></span><span style="display:flex;"><span>x-qs-meta-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">0</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;authorization string&gt;</span> </span></span></code></pre></div><p>服务端返回:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> <span style="color:#ae81ff">201</span> <span style="color:#a6e22e">CREATED</span> </span></span><span style="display:flex;"><span>Server<span style="color:#f92672">:</span> <span style="color:#ae81ff">QingStor</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>x-qs-request-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;x-qs-request-id&gt;</span> </span></span></code></pre></div><ol start="2"> <li>调用 API:<a href="/storage/object-storage/api/object/basic_opt/put/">PUT Object COPY</a> 复制源对象 <code>source_object</code> 到目标对象 <code>dest_object</code>,并在请求头中指定元数据:<code>x-qs-meta-id: 1, Cache-Control: max-age=31536000</code>。此时需增加请求头字段:<code>x-qs-metadata-directive : replace</code>。</li> </ol> <p>请求服务端:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#a6e22e">PUT</span> /dest_object <span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> </span></span><span style="display:flex;"><span>Host<span style="color:#f92672">:</span> <span style="color:#ae81ff">mybucket.pek3a.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>Cache-Control<span style="color:#f92672">:</span> <span style="color:#ae81ff">max-age=31536000</span> </span></span><span style="display:flex;"><span>x-qs-copy-source<span style="color:#f92672">:</span> <span style="color:#ae81ff">/mybucket/source_object</span> </span></span><span style="display:flex;"><span>x-qs-meta-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">1</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;authorization string&gt;</span> </span></span></code></pre></div><p>服务端返回:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> <span style="color:#ae81ff">201</span> <span style="color:#a6e22e">CREATED</span> </span></span><span style="display:flex;"><span>Server<span style="color:#f92672">:</span> <span style="color:#ae81ff">QingStor</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>x-qs-request-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;x-qs-request-id&gt;</span> </span></span></code></pre></div><ol start="3"> <li>调用 API:<a href="/storage/object-storage/api/object/basic_opt/head/">HEAD Object</a> 验证目标对象 <code>dest_object</code> 的元数据与上一步请求头中的一致。</li> </ol> <p>请求服务端:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#a6e22e">HEAD</span> /dest_object <span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> </span></span><span style="display:flex;"><span>Host<span style="color:#f92672">:</span> <span style="color:#ae81ff">mybucket.pek3a.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;authorization string&gt;</span> </span></span></code></pre></div><p>服务端返回:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-http" data-lang="http"><span style="display:flex;"><span><span style="color:#66d9ef">HTTP</span><span style="color:#f92672">/</span><span style="color:#ae81ff">1.1</span> <span style="color:#ae81ff">200</span> <span style="color:#a6e22e">OK</span> </span></span><span style="display:flex;"><span>Server<span style="color:#f92672">:</span> <span style="color:#ae81ff">QingStor</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 05 Jul 2018 11:01:40 GMT</span> </span></span><span style="display:flex;"><span>Cache-Control<span style="color:#f92672">:</span> <span style="color:#ae81ff">max-age=31536000</span> </span></span><span style="display:flex;"><span>x-qs-meta-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">1</span> </span></span><span style="display:flex;"><span>x-qs-request-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;x-qs-request-id&gt;</span> </span></span></code></pre></div> Storage: 错误信息 /storage/object-storage/api/error_code/ Fri, 28 Feb 2020 10:08:56 +0900 /storage/object-storage/api/error_code/ <p>在请求返回的结果中,消息头中的 HTTP 状态码:Status Code,会表明请求处理完成后的状态,它符合 HTTP 规范所规定的语义。当错误发生时,请求返回的消息体会以 json 格式返回具体的错误信息。</p> <h2 id="错误码列表">错误码列表</h2> <table> <thead> <tr> <th>错误代码</th> <th>错误描述</th> <th>HTTP 状态码</th> </tr> </thead> <tbody> <tr> <td>invalid_access_key_id</td> <td>请求中的 Access Key 不正确或不存在</td> <td>401</td> </tr> <tr> <td>invalid_range</td> <td>请求头中的 <code>Range</code> 不符合规则。具体规则可参考公共字段中 <a href="../common_header/#range">Range</a> 的定义</td> <td>416</td> </tr> <tr> <td>request_expired</td> <td>请求头中 <code>Date</code> 或 <code>x-qs-date</code> 与服务端本地时间差大于 15 分钟</td> <td>403</td> </tr> <tr> <td>signature_not_matched</td> <td>请求中的签名不匹配</td> <td>401</td> </tr> <tr> <td>invalid_argument</td> <td>请求中存在非法的参数值</td> <td>400</td> </tr> <tr> <td>bad_digest</td> <td>请求头中携带的 <code>Content-MD5</code> 与服务端根据实际接收到的数据所计算出的 <code>MD5</code> 值不匹配</td> <td>400</td> </tr> <tr> <td>permission_denied</td> <td>没有权限执行此次请求</td> <td>403</td> </tr> <tr> <td>bucket_already_exists</td> <td>创建 Bucket时,Bucket 已存在</td> <td>409</td> </tr> <tr> <td>bucket_not_exists</td> <td>访问的 Bucket 不存在</td> <td>404</td> </tr> <tr> <td>object_not_exists</td> <td>访问的 Object 不存在</td> <td>404</td> </tr> <tr> <td>invalid_bucket_name</td> <td>创建 Bucket 时,指定的 Bucket 名称不符合规则</td> <td>400</td> </tr> <tr> <td>too_many_buckets</td> <td>创建 Bucket 时,超出限额。可通过工单提高额度</td> <td>403</td> </tr> <tr> <td>bucket_not_empty</td> <td>删除非空的 Bucket</td> <td>409</td> </tr> <tr> <td>bucket_not_active</td> <td>访问的 Bucket 状态不为活跃状态</td> <td>403</td> </tr> <tr> <td>lease_not_ready</td> <td>Bucket 租赁信息未准备好</td> <td>403</td> </tr> <tr> <td>method_not_allowed</td> <td>请求中指定的 <code>method</code> 不被允许</td> <td>405</td> </tr> <tr> <td>invalid_request</td> <td>请求中的消息体不符合规定</td> <td>400</td> </tr> <tr> <td>invalid_location</td> <td>请求头中携带的区域信息不存在</td> <td>400</td> </tr> <tr> <td>max_requests_exceeded</td> <td>创建和删除 Bucket 的请求过于频繁</td> <td>400</td> </tr> <tr> <td>precondition_failed</td> <td>请求的 Header 中某些先决条件不满足</td> <td>412</td> </tr> <tr> <td>invalid_object_state</td> <td>当前 Object 状态不支持此次操作</td> <td>400</td> </tr> <tr> <td>invalid_object_name</td> <td>Object 名称不符合规则</td> <td>400</td> </tr> <tr> <td>entity_too_small</td> <td>分段上传时,Object 的分段大小小于 4M</td> <td>400</td> </tr> <tr> <td>entity_too_large</td> <td>单个 Object 上传和使用分段上传时,Object 的大小或一个分段的大小大于 5G</td> <td>400</td> </tr> <tr> <td>max_parts_exceeded</td> <td>分段上传时,分段数量超过最大分段量数 1000</td> <td>400</td> </tr> <tr> <td>upload_not_exists</td> <td>分段上传时,请求中携带的 <code>upload id</code> 不存在</td> <td>400</td> </tr> <tr> <td>account_problem</td> <td>账号异常</td> <td>403</td> </tr> <tr> <td>delinquent_account</td> <td>账号欠费</td> <td>402</td> </tr> <tr> <td>invalid_json</td> <td>请求消息体的 json 格式错误</td> <td>400</td> </tr> <tr> <td>access_denied</td> <td>请求被拒绝</td> <td>400</td> </tr> <tr> <td>incomplete_body</td> <td>请求消息体不完整</td> <td>400</td> </tr> <tr> <td>form_policy_violated</td> <td>表单内容与策略不相符</td> <td>400</td> </tr> <tr> <td>cname_error</td> <td>CNAME 设置错误</td> <td>400</td> </tr> <tr> <td>too_many_objects</td> <td>操作包含的 Object 数量过多</td> <td>400</td> </tr> <tr> <td>fetch_in_process</td> <td>调用 Fetch Object API 时,有相同源链接的 Fetch 请求正在进行中,或被动触发的外部镜像功能正在抓取该源链接对应的文件</td> <td>409</td> </tr> <tr> <td>metadata_too_large</td> <td>自定义元数据总大小超过限制 2 KB 或键的长度,不含前缀 <code>x-qs-meta-</code>,超过 512 字节</td> <td>400</td> </tr> <tr> <td>fetch_throttled</td> <td>服务端正在处理过多的抓取请求。包括 Fetch 请求从源链接抓取或外部镜像从源站抓取</td> <td>429</td> </tr> <tr> <td>internal_error</td> <td>QingStor 对象存储系统内部错误,请稍后重试</td> <td>500</td> </tr> <tr> <td>service_unavailable</td> <td>QingStor 对象存储系统临时不可用,请稍后重试</td> <td>503</td> </tr> <tr> <td>upstream_failed</td> <td>无法与 Fetch 请求的源链接或者外部镜像的源站建立链接,或源站服务器返回 200,3xx,404 范围之外的错误代码,或链接中断</td> <td>503</td> </tr> </tbody> </table> <p><strong>说明</strong></p> <ul> <li>分段上传时,QingStor 对象存储对 Object 的一个分段大小做出了限制。最小为 4M,最大为 5G。</li> <li>单个 Object 上传时,QingStor 对象存储对其上限做出了限制,最大为 5G。</li> <li>自定义元数据是指所有前缀为 <code>x-qs-meta-</code> 的键值对。计算自定义元数据大小时,不含前缀 <code>x-qs-meta-</code>。</li> </ul> <h2 id="错误返回格式">错误返回格式</h2> <p>当错误发生时,请求返回的消息体会以 json 格式返回具体的错误信息。如下所示:</p> <div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-json" data-lang="json"><span style="display:flex;"><span>{ </span></span><span style="display:flex;"><span> <span style="color:#f92672">&#34;code&#34;</span>: <span style="color:#e6db74">&#34;bad_request&#34;</span>, </span></span><span style="display:flex;"><span> <span style="color:#f92672">&#34;message&#34;</span>: <span style="color:#e6db74">&#34;Invalid argument(s) or invalid argument value(s)&#34;</span>, </span></span><span style="display:flex;"><span> <span style="color:#f92672">&#34;request_id&#34;</span>: <span style="color:#e6db74">&#34;aa08cf7a43f611e5&#34;</span>, </span></span><span style="display:flex;"><span> <span style="color:#f92672">&#34;url&#34;</span>: <span style="color:#e6db74">&#34;http://docs.qingcloud.com/qingstor/api/error_code.html&#34;</span> </span></span><span style="display:flex;"><span>} </span></span></code></pre></div><p><strong>各字段说明</strong></p> <table> <thead> <tr> <th>参数名</th> <th>解释</th> </tr> </thead> <tbody> <tr> <td>code</td> <td>错误码</td> </tr> <tr> <td>message</td> <td>详细错误信息</td> </tr> <tr> <td>request_id</td> <td>服务端为该次错误请求生成的唯一标示。QingStor 对象存储研发通过该 ID,能更快定位问题。</td> </tr> <tr> <td>url</td> <td>指向相关帮助文档</td> </tr> </tbody> </table> Storage: Bucket API /storage/object-storage/api/bucket/ Fri, 28 Feb 2020 10:08:56 +0900 /storage/object-storage/api/bucket/ <ul> <li><a href="./basic_opt">基础操作</a></li> <li><a href="./acl">存储空间访问控制(ACL)</a></li> <li><a href="./lifecycle">生命周期(Lifecycle)</a></li> <li><a href="./external_mirror">外部镜像(External Mirror)</a></li> <li><a href="./cors">跨源资源共享(CORS)</a></li> <li><a href="./logging">日志管理(Logging)</a></li> <li><a href="./replication">跨区域复制(Replication)</a></li> <li><a href="./notification">事件通知(Notification)</a></li> <li><a href="./cname">自定义域名(CNAME)</a></li> <li><a href="./cname">存储空间策略(Policy)</a></li> </ul> Storage: Object API /storage/object-storage/api/object/ Wed, 25 Nov 2020 10:08:56 +0900 /storage/object-storage/api/object/ <ul> <li><a href="./basic_opt">基础操作</a></li> <li><a href="./append">Append Object</a></li> <li><a href="./encryption">数据加密</a></li> <li><a href="./post">表单上传</a></li> <li><a href="./multipart">分段上传</a></li> </ul> Storage: Service API /storage/object-storage/api/service/ Wed, 25 Nov 2020 10:08:56 +0900 /storage/object-storage/api/service/ <ul> <li><a href="get">GET Service</a></li> <li><a href="location">List Locations</a></li> </ul> Storage: API 使用示例 /storage/object-storage/api/practices/ Wed, 25 Nov 2020 10:08:56 +0900 /storage/object-storage/api/practices/ <ul> <li><a href="signature">签名验证</a></li> <li><a href="access_control">数据访问权限</a></li> </ul>