QingCloud 文档 – 基础操作 - kaiyun官方网站下载手机网页 /storage/object-storage/api/object/basic_opt/ Recent content in 基础操作 on QingCloud 文档 Hugo -- gohugo.io Storage: Delete Object /storage/object-storage/api/object/basic_opt/delete/ Thu, 26 Nov 2020 10:08:56 +0900 /storage/object-storage/api/object/basic_opt/delete/ <p>该 API 接口用于从指定 Bucket 中删除一个 Object。该操作要求请求者对指定的 Bucket 拥有可写权限,不允许匿名访问。</p> <h2 id="请求语法">请求语法</h2> <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">DELETE</span> /&lt;object-name&gt; <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">&lt;bucket-name&gt;.&lt;zone-id&gt;.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;date&gt;</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><h2 id="请求参数">请求参数</h2> <p>无。</p> <h2 id="请求消息头">请求消息头</h2> <p>此接口仅包含公共请求头。关于公共请求头的更多信息,请参见 <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> <h2 id="请求消息体">请求消息体</h2> <p>无。</p> <h2 id="响应头">响应头</h2> <p>此接口仅包含公共响应头。关于公共响应头的更多信息,请参见 <a href="/storage/object-storage/api/common_header/#%E5%93%8D%E5%BA%94%E5%A4%B4%E5%AD%97%E6%AE%B5-response-header">公共响应头</a>。</p> <h2 id="错误码">错误码</h2> <p>该 API 为幂等操作。成功则返回 204,无论此前 Object 存在或不存在。Bucket 不存在会返回 404。其他失败的返回码参考 <a href="/storage/object-storage/api/error_code/#%E9%94%99%E8%AF%AF%E7%A0%81%E5%88%97%E8%A1%A8">错误码列表</a>。</p> <h2 id="示例">示例</h2> <h3 id="请求示例">请求示例</h3> <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">DELETE</span> /myphoto.jpg <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">Sun, 16 Aug 2015 09:05:00 GMT</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">authorization string</span> </span></span></code></pre></div><h3 id="响应示例">响应示例</h3> <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">204</span> <span style="color:#a6e22e">NoContent</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">Sun, 16 Aug 2015 09:05:00 GMT</span> </span></span><span style="display:flex;"><span>Content-Length<span style="color:#f92672">:</span> <span style="color:#ae81ff">0</span> </span></span><span style="display:flex;"><span>Connection<span style="color:#f92672">:</span> <span style="color:#ae81ff">close</span> </span></span><span style="display:flex;"><span>x-qs-request-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">aa08cf7a43f611e5886952542e6ce14b</span> </span></span></code></pre></div><h2 id="sdk">SDK</h2> <p>此接口所对应的各语言 SDK 可参考 <a href="/storage/object-storage/sdk/">SDK 文档</a>。</p> Storage: Get Object /storage/object-storage/api/object/basic_opt/get/ Thu, 26 Nov 2020 10:08:56 +0900 /storage/object-storage/api/object/basic_opt/get/ <p>该 API 接口用于从指定 Bucket 获取一个 Object。</p> <h2 id="使用须知">使用须知</h2> <ul> <li>该操作要求请求者对指定的 Bucket 拥有可读权限。</li> <li>若指定的 Bucket 被设置为匿名用户可读,则请求中可不携带用户认证信息;</li> <li>若指定的 Bucket 被设置为匿名用户可读,但请求中仍然携带了用户认证信息,则 QingStor 对象存储仍然会对该用户进行认证,当 QingStor 对象存储认证该用户不拥有该 Bucket 的可读权限,该请求返回错误。</li> </ul> <h2 id="请求语法">请求语法</h2> <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">GET</span> /&lt;object-name&gt; <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">&lt;bucket-name&gt;.&lt;zone-id&gt;.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;date&gt;</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><span style="display:flex;"><span>Range<span style="color:#f92672">:</span> <span style="color:#ae81ff">bytes=&lt;byte-range&gt;</span> </span></span></code></pre></div><h2 id="请求参数">请求参数</h2> <p>调用该接口时,用户可在 URL 中添加以下参数用以设置响应头中的响应字段。需注意的是,当用户在请求头中添加以下参数时,则该请求必须携带认证信息,且携带的认证信息也需要对以下的请求参数进行签名。</p> <table> <thead> <tr> <th>参数名</th> <th>类型</th> <th>说明</th> <th>是否必须</th> </tr> </thead> <tbody> <tr> <td>response-expires</td> <td>String</td> <td>设置响应头中的 Expires 字段</td> <td>否</td> </tr> <tr> <td>response-cache-control</td> <td>String</td> <td>设置响应头中的 Cache-Control 字段</td> <td>否</td> </tr> <tr> <td>response-content-type</td> <td>String</td> <td>设置响应头中的 Content-Type 字段</td> <td>否</td> </tr> <tr> <td>response-content-language</td> <td>String</td> <td>设置响应头中的 Content-Language 字段</td> <td>否</td> </tr> <tr> <td>response-content-encoding</td> <td>String</td> <td>设置响应头中的 Content-Encoding 字段</td> <td>否</td> </tr> <tr> <td>response-content-disposition</td> <td>String</td> <td>设置响应头中的 Content-Disposition 字段。若要支持指定浏览器下载的文件名中带中文,需要拼接参数 &ldquo;?response-content-disposition=&rdquo; + url_quote(&lsquo;attachment; filename=&quot;&rsquo;+url_quote(filename) + &ldquo;&quot;; filename=*utf-8&rsquo;&rsquo;&rdquo; + url_quote(filename)) 具体见下边请求样例。</td> <td>否</td> </tr> </tbody> </table> <h2 id="请求消息头">请求消息头</h2> <h3 id="标准-http-头">标准 HTTP 头</h3> <table> <thead> <tr> <th>字段名</th> <th>类型</th> <th>说明</th> <th>是否必须</th> </tr> </thead> <tbody> <tr> <td>Range</td> <td>String</td> <td>下载对象的某个字节区间,当附加该请求头时,处理成功后返回的状态码为 206 Partial Content。</td> <td>否</td> </tr> <tr> <td>If-Modified-Since</td> <td>Date</td> <td>设置对象修改时间。若该对象自该指定时间后被修改过,则正常下载该对象。</td> <td>否</td> </tr> <tr> <td>If-Unmodified-Since</td> <td>Date</td> <td>设置对象修改时间。若该对象自该指定时间往后没有被修改过,则正常下载该对象。</td> <td>否</td> </tr> <tr> <td>If-Match</td> <td>String</td> <td>若该对象内容的 <code>ETag</code> 值符合该给定的值,则正常下载对象。</td> <td>否</td> </tr> <tr> <td>If-None-Match</td> <td>String</td> <td>若该对象内容的 <code>ETag</code> 值不符合该给定的值,则正常下载对象。</td> <td>否</td> </tr> </tbody> </table> <p>此接口还需要包含 Host、Date 等公共请求头。详细内容可参见 <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>若用户获取的 Object 为加密对象,则需提供相应的加密请求头。具体可参考 <a href="/storage/object-storage/api/object/encryption/">加密对象</a> 相关内容,添加相应请求头。</p> <h2 id="请求消息体">请求消息体</h2> <p>无。</p> <h2 id="响应头">响应头</h2> <p>若该 Object 有元数据,则响应头会携带元数据信息。具体可参考 <a href="/storage/object-storage/api/metadata/">对象元数据</a> 相关内容。</p> <p>若该 Object 为加密对象,则响应头会携带加密信息。具体可参考 <a href="/storage/object-storage/api/object/encryption/">加密对象</a> 相关内容。</p> <p>其他公共响应头可参考:<a href="/storage/object-storage/api/common_header/#%E5%93%8D%E5%BA%94%E5%A4%B4%E5%AD%97%E6%AE%B5-response-header">公共响应头</a>。</p> <h2 id="错误码">错误码</h2> <p>该 API 为幂等操作。</p> <table> <thead> <tr> <th>错误码</th> <th>错误描述</th> <th>HTTP 状态码</th> </tr> </thead> <tbody> <tr> <td>OK</td> <td>回源成功</td> <td>200</td> </tr> <tr> <td>-</td> <td>源 Object 不存在或目标 Bucket 不存在</td> <td>404</td> </tr> <tr> <td>-</td> <td>开启了外部镜像功能并且 Object 在 Bucket 中不存在</td> <td>302</td> </tr> </tbody> </table> <p>其他错误码可参考 <a href="/storage/object-storage/api/error_code/#%E9%94%99%E8%AF%AF%E7%A0%81%E5%88%97%E8%A1%A8">错误码列表</a>。</p> <h2 id="示例">示例</h2> <h3 id="示例一">示例一:</h3> <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">GET</span> /myphoto.jpg <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">Sun, 16 Aug 2015 09:05:00 GMT</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">authorization string</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">Sun, 16 Aug 2015 09:05:00 GMT</span> </span></span><span style="display:flex;"><span>Last-Modified<span style="color:#f92672">:</span> <span style="color:#ae81ff">Fri, 14 Aug 2015 09:10:39 GMT</span> </span></span><span style="display:flex;"><span>Content-Type<span style="color:#f92672">:</span> <span style="color:#ae81ff">image/jpeg</span> </span></span><span style="display:flex;"><span>Content-Length<span style="color:#f92672">:</span> <span style="color:#ae81ff">7987</span> </span></span><span style="display:flex;"><span>Connection<span style="color:#f92672">:</span> <span style="color:#ae81ff">close</span> </span></span><span style="display:flex;"><span>x-qs-request-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">aa08cf7a43f611e5886952542e6ce14b</span> </span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">[7987</span> <span style="color:#ae81ff">bytes of object data]</span> </span></span></code></pre></div><h3 id="示例二带-response-content-disposition">示例二:带 <code>response-content-disposition</code></h3> <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">GET</span> /mybucket/test.htm?response-content-disposition=attachment%3B%20filename%3D%22%25E6%25B5%258B%25E8%25AF%2595%25E6%2596%2587%25E4%25BB%25B6%2528%25E5%2593%2588%25E5%2593%2588%25E5%2593%2588%2529.txt%22%3B%20filename%2A%3Dutf-8%27%27%25E6%25B5%258B%25E8%25AF%2595%25E6%2596%2587%25E4%25BB%25B6%2528%25E5%2593%2588%25E5%2593%2588%25E5%2593%2588%2529.txt&amp;省略参数认证信息 <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">sh1a.qingstor.com</span> </span></span><span style="display:flex;"><span>Accept<span style="color:#f92672">:</span> <span style="color:#ae81ff">*/*</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>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 04 Jan 2018 17:11:23 GMT</span> </span></span><span style="display:flex;"><span>Content-Type<span style="color:#f92672">:</span> <span style="color:#ae81ff">text/html; charset=utf-8</span> </span></span><span style="display:flex;"><span>Content-Length<span style="color:#f92672">:</span> <span style="color:#ae81ff">11437</span> </span></span><span style="display:flex;"><span>Connection<span style="color:#f92672">:</span> <span style="color:#ae81ff">keep-alive</span> </span></span><span style="display:flex;"><span>Content-Disposition<span style="color:#f92672">:</span> <span style="color:#ae81ff">attachment; filename=&#34;%E6%B5%8B%E8%AF%95%E6%96%87%E4%BB%B6%28%E5%93%88%E5%93%88%E5%93%88%29.txt&#34;; filename*=utf-8&#39;&#39;%E6%B5%8B%E8%AF%95%E6%96%87%E4%BB%B6%28%E5%93%88%E5%93%88%E5%93%88%29.txt</span> </span></span><span style="display:flex;"><span>Etag<span style="color:#f92672">:</span> <span style="color:#ae81ff">&#34;0dc1550ee20d5e14ee0153ddc149d9d1&#34;</span> </span></span><span style="display:flex;"><span>Last-Modified<span style="color:#f92672">:</span> <span style="color:#ae81ff">Thu, 09 Nov 2017 16:18:58 GMT</span> </span></span><span style="display:flex;"><span>x-qs-request-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">afdd603b0021971e</span> </span></span><span style="display:flex;"><span>x-qs-storage-class<span style="color:#f92672">:</span> <span style="color:#ae81ff">STANDARD</span> </span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">[11437</span> <span style="color:#ae81ff">bytes of object data]</span> </span></span></code></pre></div><h2 id="sdk">SDK</h2> <p>此接口所对应的各语言 SDK 可参考 <a href="/storage/object-storage/sdk/">SDK 文档</a>。</p> Storage: Head Object /storage/object-storage/api/object/basic_opt/head/ Thu, 26 Nov 2020 10:08:56 +0900 /storage/object-storage/api/object/basic_opt/head/ <p>该 API 接口用于从指定 Bucket 获取一个 Object 的元数据,QingStor 对象存储仅返回该 Object 的元数据信息,不返回该 Object 的内容。</p> <h2 id="使用须知">使用须知</h2> <ul> <li>此操作要求请求者对指定 Bucket 拥有可读权限。</li> <li>若指定的 Bucket 被设置为匿名用户可读,则请求中可不携带用户认证信息;</li> <li>若指定的 Bucket 被设置为匿名用户可读,请求中仍然携带了用户认证信息,则 QingStor 对象存储仍然会对该用户进行认证,当 QingStor 对象存储认证该用户不拥有该 Bucket 的可读权限,该请求返回错误。</li> <li>用户可调用该 API 接口检查相应的 Object 是否存在。</li> </ul> <h2 id="请求语法">请求语法</h2> <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> /&lt;object-name&gt; <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">&lt;bucket-name&gt;.pek3a.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;date&gt;</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><span style="display:flex;"><span>Range<span style="color:#f92672">:</span> <span style="color:#ae81ff">bytes=&lt;byte-range&gt;</span> </span></span></code></pre></div><h2 id="请求参数">请求参数</h2> <p>无。</p> <h2 id="请求消息头">请求消息头</h2> <h3 id="标准-http-头">标准 HTTP 头</h3> <table> <thead> <tr> <th>字段名</th> <th>类型</th> <th>说明</th> <th>是否必须</th> </tr> </thead> <tbody> <tr> <td>If-Modified-Since</td> <td>Date</td> <td>设置对象修改时间。若该对象自该指定时间后被修改过,则正常下载该对象。</td> <td>否</td> </tr> <tr> <td>If-Unmodified-Since</td> <td>Date</td> <td>设置对象修改时间。若该对象自该指定时间往后没有被修改过,则正常下载该对象。</td> <td>否</td> </tr> <tr> <td>If-Match</td> <td>String</td> <td>若该对象内容的 <code>ETag</code> 值符合该给定的值,则正常下载对象。</td> <td>否</td> </tr> <tr> <td>If-None-Match</td> <td>String</td> <td>若该对象内容的 <code>ETag</code> 值不符合该给定的值,则正常下载对象。</td> <td>否</td> </tr> </tbody> </table> <p>此接口还需要包含 Host、Date 等公共请求头。详细内容可参见 <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>若用户获取的 Object 为加密对象,则需提供相应的加密请求头。具体可参考 <a href="/storage/object-storage/api/object/encryption/">加密对象</a> 相关内容,添加相应请求头。</p> <h2 id="请求消息体">请求消息体</h2> <p>无。</p> <h2 id="响应头">响应头</h2> <p>各字段说明如下:</p> <table> <thead> <tr> <th>字段名</th> <th>类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td>Content-Type</td> <td>String</td> <td>Object 类型</td> </tr> <tr> <td>Content-Length</td> <td>Integer</td> <td>Object 大小。当服务端返回状态码为 200 时,该字段有意义。</td> </tr> <tr> <td>Last-Modified</td> <td>Date</td> <td>Object 最后一次更新时间</td> </tr> <tr> <td>ETag</td> <td>String</td> <td>服务器端为 Object 内容生成的唯一标志</td> </tr> <tr> <td>x-qs-storage-class</td> <td>String</td> <td>Object 的存储级别,支持的存储级别为 <code>STANDARD</code> 和 <code>STANDARD_IA</code></td> </tr> <tr> <td>x-qs-object-type</td> <td>String</td> <td>Object 的类型,当 <code>Content-Type</code> 为 <code>appendable</code> 时,返回该字段。</td> </tr> <tr> <td>x-qs-next-append-position</td> <td>String</td> <td>Object 下次追加写的位置,当 <code>Content-Type</code> 为 <code>appendable</code> 时,返回该字段。</td> </tr> </tbody> </table> <p>若对象被加密,服务端将返回 <a href="/storage/object-storage/api/object/encryption/#%E5%8A%A0%E5%AF%86%E5%93%8D%E5%BA%94%E5%A4%B4">加密响应头</a>。</p> <p>其他公共响应头可参考:<a href="/storage/object-storage/api/common_header/#%E5%93%8D%E5%BA%94%E5%A4%B4%E5%AD%97%E6%AE%B5-response-header">公共响应头</a>。</p> <h2 id="错误码">错误码</h2> <p>该 API 为幂等操作,成功则返回 200。当 Object 或 Bucket 不存在时,会返回 404。其他失败的返回码参考 <a href="/storage/object-storage/api/error_code/#%E9%94%99%E8%AF%AF%E7%A0%81%E5%88%97%E8%A1%A8">错误码列表</a>。</p> <h2 id="示例">示例</h2> <h3 id="请求示例">请求示例</h3> <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> /myphoto.jpg <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">Sun, 16 Aug 2015 09:05:00 GMT</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">authorization string</span> </span></span></code></pre></div><h3 id="响应示例">响应示例</h3> <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">Sun, 16 Aug 2015 09:05:00 GMT</span> </span></span><span style="display:flex;"><span>Last-Modified<span style="color:#f92672">:</span> <span style="color:#ae81ff">Fri, 14 Aug 2015 09:10:39 GMT</span> </span></span><span style="display:flex;"><span>ETag<span style="color:#f92672">:</span> <span style="color:#ae81ff">&#34;0c2f573d81194064b129e940edcefe9b&#34;</span> </span></span><span style="display:flex;"><span>Content-Type<span style="color:#f92672">:</span> <span style="color:#ae81ff">image/jpeg</span> </span></span><span style="display:flex;"><span>Content-Length<span style="color:#f92672">:</span> <span style="color:#ae81ff">7987</span> </span></span><span style="display:flex;"><span>Connection<span style="color:#f92672">:</span> <span style="color:#ae81ff">close</span> </span></span><span style="display:flex;"><span>x-qs-storage-class<span style="color:#f92672">:</span> <span style="color:#ae81ff">STANDARD</span> </span></span><span style="display:flex;"><span>x-qs-request-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">aa08cf7a43f611e5886952542e6ce14b</span> </span></span></code></pre></div><h2 id="sdk">SDK</h2> <p>此接口所对应的各语言 SDK 可参考 <a href="/storage/object-storage/sdk/">SDK 文档</a>。</p> Storage: Put Object /storage/object-storage/api/object/basic_opt/put/ Thu, 26 Nov 2020 10:08:56 +0900 /storage/object-storage/api/object/basic_opt/put/ <p>该 API 接口用于向指定 Bucket 上传一个 Object。</p> <h2 id="使用须知">使用须知</h2> <ul> <li>该操作要求请求者对指定的 Bucket 拥有可写权限。</li> <li>Bucket 中的文件夹是模拟概念,控制台展现文件列表时,会自动根据 Object 名中的 <code>/</code> 生成文件夹。</li> <li>用户可以调用此接口上传空的 Object,并指定 Object 名以 <code>/</code> 结尾,来创建一个空文件夹。</li> <li>若指定的 Bucket 中已存在同名的 Object,QingStor 对象存储会在该 Object 完整上传完成后,替换已有 Object。</li> <li>若同时有多个上传请求写入同一个 Object Key,则最后一个被 QingStor 对象存储处理的请求会覆盖之前上传的 Object 内容。</li> <li>在用户调用该 API 上传数据之前,用户可以只发送 HTTP 请求头,不携带请求实体,并在请求头中添加 <code>Expect: 100-continue</code>,来提前得知该请求是否能被 QingStor 对象存储正确接受与处理。当用户上传的对象实体非常庞大时,可以通过该方式提前知道该上传请求中的认证信息是否正确,请求域名是否需要重定向等,从而减少不必要的数据传输。</li> <li>若指定的 Bucket 被设置为匿名用户可写,则请求中可不携带用户认证信息;</li> <li>若指定的 Bucket 被设置为匿名用户可写,但请求中仍然携带了用户认证信息,则 QingStor 对象存储仍然会对该用户进行认证,当 QingStor 对象存储认证该用户不拥有该 Bucket 的可写权限,该请求返回错误。</li> </ul> <h2 id="请求语法">请求语法</h2> <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> /&lt;object-name&gt; <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">&lt;bucket-name&gt;.&lt;zone-id&gt;.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;date&gt;</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><h2 id="请求参数">请求参数</h2> <p>无。</p> <h2 id="请求头">请求头</h2> <p>QingStor 对象存储上传 Object 时,支持标准 HTTP 请求头和自定义请求头。若用户上传 Object 时设置了这些请求头,则下载该 Object 时,相应的请求头的值会自动使用上传 Object 时设置的值。各请求头字段说明如下:</p> <h3 id="标准-http-头">标准 HTTP 头</h3> <table> <thead> <tr> <th>字段名</th> <th>类型</th> <th>说明</th> <th>是否必须</th> </tr> </thead> <tbody> <tr> <td>Content-Length</td> <td>String</td> <td>对象实体的大小</td> <td>是</td> </tr> <tr> <td>Content-MD5</td> <td>String</td> <td>对象实体的 MD5 值,用于检查对象在传输过程中是否出错或被篡改</td> <td>否</td> </tr> </tbody> </table> <p>此接口还需要包含 Host、Date 等公共请求头。详细内容可参见 <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>若用户需创建 Object 元数据,可参考 <a href="/storage/object-storage/api/metadata/">对象元数据</a> 相关内容,添加相应请求头。</p> <h3 id="加密对象">加密对象</h3> <p>若用户需加密 Object,可参考 <a href="/storage/object-storage/api/object/encryption/#%E5%8A%A0%E5%AF%86%E8%AF%B7%E6%B1%82%E5%A4%B4">加密对象</a> 相关内容,添加相应请求头。</p> <h3 id="存储级别">存储级别</h3> <p>若用户需指定上传 Object 的存储级别,可添加如下请求头:</p> <table> <thead> <tr> <th>字段名</th> <th>类型</th> <th>说明</th> <th>是否必须</th> </tr> </thead> <tbody> <tr> <td>x-qs-storage-class</td> <td>String</td> <td>指定对象的存储级别。默认值为 <code>STANDARD</code>,可选值:<br> - <code>STANDARD</code> 表示标准存储 <br> - <code>STANDARD_IA</code> 表示低频存储。</td> <td>否</td> </tr> </tbody> </table> <h2 id="请求消息体">请求消息体</h2> <p>Object 实体内容。</p> <h2 id="响应头">响应头</h2> <p>若对象被加密,服务端将返回 <a href="/storage/object-storage/api/object/encryption/#%E5%8A%A0%E5%AF%86%E5%93%8D%E5%BA%94%E5%A4%B4">加密响应头</a>。</p> <p>其他公共响应头可参考:<a href="/storage/object-storage/api/common_header/#%E5%93%8D%E5%BA%94%E5%A4%B4%E5%AD%97%E6%AE%B5-response-header">公共响应头</a>。</p> <h2 id="响应消息体">响应消息体</h2> <p>该 API 成功返回 201 时,没有响应消息体,失败返回错误码对应的 Json 格式消息体,详情参考 <a href="/storage/object-storage/api/error_code/#%E9%94%99%E8%AF%AF%E7%A0%81%E5%88%97%E8%A1%A8">错误码列表</a>。</p> <h2 id="错误码">错误码</h2> <p>该 API 为幂等操作。成功则返回 201,失败的返回码参考 <a href="/storage/object-storage/api/error_code/#%E9%94%99%E8%AF%AF%E7%A0%81%E5%88%97%E8%A1%A8">错误码列表</a>。</p> <h2 id="示例">示例</h2> <h3 id="请求示例">请求示例</h3> <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> /myphoto.jpg <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">Sun, 16 Aug 2015 09:05:00 GMT</span> </span></span><span style="display:flex;"><span>Content-Length<span style="color:#f92672">:</span> <span style="color:#ae81ff">7987</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">authorization string</span> </span></span><span style="display:flex;"><span><span style="color:#960050;background-color:#1e0010">[7987</span> <span style="color:#ae81ff">bytes of object data]</span> </span></span></code></pre></div><h3 id="响应示例">响应示例</h3> <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">Sun, 16 Aug 2015 09:05:00 GMT</span> </span></span><span style="display:flex;"><span>ETag<span style="color:#f92672">:</span> <span style="color:#ae81ff">&#34;0c2f573d81194064b129e940edcefe9b&#34;</span> </span></span><span style="display:flex;"><span>Content-Length<span style="color:#f92672">:</span> <span style="color:#ae81ff">0</span> </span></span><span style="display:flex;"><span>Connection<span style="color:#f92672">:</span> <span style="color:#ae81ff">close</span> </span></span><span style="display:flex;"><span>x-qs-request-id<span style="color:#f92672">:</span> <span style="color:#ae81ff">aa08cf7a43f611e5886952542e6ce14b</span> </span></span></code></pre></div><h2 id="sdk">SDK</h2> <p>此接口所对应的各语言 SDK 可参考 <a href="/storage/object-storage/sdk/">SDK 文档</a>。</p> Storage: Copy Object /storage/object-storage/api/object/basic_opt/copy/ Wed, 25 Nov 2020 10:08:56 +0900 /storage/object-storage/api/object/basic_opt/copy/ <p>该 API 接口用于从源 Bucket 复制一个 Object 到目标 Bucket。</p> <h2 id="使用须知">使用须知</h2> <ul> <li>此操作要求请求者对源 Bucket 拥有可读权限,对目标 Bucket 拥有可写权限。</li> <li>源 Bucket 与目标 Bucket 可相同。因此该接口可用于重命名 Object。即先调用此接口复制该 Object,然后再删除源 Object。</li> <li>目前实体 Object 单次复制的大小最大支持 5G。若源 Object 大小超过该限制,可使用 <a href="/storage/object-storage/api/object/multipart/">分段上传</a>。</li> <li>当目标 Object 已存在时,该操作会对目标 Object 的内容进行覆盖。</li> <li>目前仅支持在同一区域内复制 Object。</li> </ul> <h2 id="请求语法">请求语法</h2> <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> /&lt;object-name&gt; <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>x-qs-copy-source<span style="color:#f92672">:</span> <span style="color:#ae81ff">/source-bucket/source-object</span> </span></span><span style="display:flex;"><span>Host<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;bucket-name&gt;.&lt;zone-id&gt;.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;date&gt;</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><h2 id="请求参数">请求参数</h2> <p>无。</p> <h2 id="请求消息头">请求消息头</h2> <p>该 API 接口支持如下消息头:</p> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>说明</th> <th>是否必须</th> </tr> </thead> <tbody> <tr> <td>x-qs-copy-source</td> <td>String</td> <td>指定源 Object Key,格式为:<code>/source-bucket/source-object</code>, 需进行URL编码。</td> <td>是</td> </tr> <tr> <td>x-qs-copy-source-if-modified-since</td> <td>Date</td> <td>若指定的时间早于源 Object 被修改的时间,则正常复制该 Object</td> <td>否</td> </tr> <tr> <td>x-qs-copy-source-If-Unmodified-Since</td> <td>Date</td> <td>若指定的时间晚于源 Object 被修改的时间,则正常复制该 Object</td> <td>否</td> </tr> <tr> <td>x-qs-copy-source-If-Match</td> <td>String</td> <td>若源 Object 的 <code>ETag</code> 值符合该给定的值,则正常复制该 Object</td> <td>否</td> </tr> <tr> <td>x-qs-copy-source-If-None-Match</td> <td>String</td> <td>若源 Object 的 <code>ETag</code> 值不符合该给定的值,则正常复制对象</td> <td>否</td> </tr> <tr> <td>x-qs-storage-class</td> <td>String</td> <td>指定 Object 的存储级别。默认值为 <code>STANDARD</code>。若 <code>x-qs-copy-source</code> 与目标 Object 相同,则仅变更该对象的存储级别,不发生拷贝。可设定的值如下:<br> - <code>STANDARD</code> 标准存储 <br> - <code>STANDARD_IA</code> 低频存储</td> <td>否</td> </tr> </tbody> </table> <p>若源 Object 是加密对象,可参考 <a href="/storage/object-storage/api/object/encryption/">加密对象-copy</a> 相关内容,添加相应请求头。</p> <p>如需为目标 Object 加密,可参考 <a href="/storage/object-storage/api/object/encryption/">加密对象</a> 相关内容,添加相应请求头。</p> <p>若用户需复制源 Object 附带的元数据给目标对象,或修改添加相应的元数据信息,可参考 <a href="/storage/object-storage/api/metadata/">对象元数据</a> 相关内容,添加相应请求头。</p> <p>除以上请求头以外,此接口还需要包含 Host、Date 等公共请求头。详细内容可参见 <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> <h2 id="请求消息体">请求消息体</h2> <p>无。</p> <h2 id="响应头">响应头</h2> <p>若目标对象被加密,服务端将返回加密响应头, 具体请参见 <a href="/storage/object-storage/api/object/encryption/">加密响应头</a>。</p> <p>其他公共响应头可参考:<a href="/storage/object-storage/api/common_header/#%E5%93%8D%E5%BA%94%E5%A4%B4%E5%AD%97%E6%AE%B5-response-header">公共响应头</a>。</p> <h2 id="错误码">错误码</h2> <p>复制成功返回 201,假如源 Object 不存在或目标 Bucket 不存在返回 404;其他失败的返回码参考 <a href="/storage/object-storage/api/error_code/#%E9%94%99%E8%AF%AF%E7%A0%81%E5%88%97%E8%A1%A8">错误码列表</a>。</p> <h2 id="示例">示例</h2> <h3 id="请求示例">请求示例</h3> <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> /myphoto.jpg <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">Sun, 16 Aug 2015 09:05:00 GMT</span> </span></span><span style="display:flex;"><span>x-qs-copy-source<span style="color:#f92672">:</span> <span style="color:#ae81ff">/source-bucket/source-object</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">authorization string</span> </span></span></code></pre></div><h3 id="响应示例">响应示例</h3> <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">Sun, 16 Aug 2015 09:05:00 GMT</span> </span></span><span style="display:flex;"><span>ETag<span style="color:#f92672">:</span> <span style="color:#ae81ff">&#34;0c2f573d81194064b129e940edcefe9b&#34;</span> </span></span><span style="display:flex;"><span>Content-Length<span style="color:#f92672">:</span> <span style="color:#ae81ff">0</span> </span></span><span style="display:flex;"><span>Connection<span style="color:#f92672">:</span> <span style="color:#ae81ff">close</span> </span></span><span style="display:flex;"><span>Request-ID<span style="color:#f92672">:</span> <span style="color:#ae81ff">aa08cf7a43f611e5886952542e6ce14b</span> </span></span></code></pre></div><h2 id="sdk">SDK</h2> <p>此接口所对应的各语言 SDK 可参考 <a href="/storage/object-storage/sdk/">SDK 文档</a>。</p> Storage: Fetch Object /storage/object-storage/api/object/basic_opt/fetch/ Wed, 25 Nov 2020 10:08:56 +0900 /storage/object-storage/api/object/basic_opt/fetch/ <p>该 API 接口用于从指定的源链接抓取资源,保存到指定的 Object 中。</p> <h2 id="使用须知">使用须知</h2> <ul> <li>QingStor 在抓取时能够自动处理源链接服务器返回的 301/302/307 等重定向请求。</li> <li>QingStor 在上传 Object 时需要知道文件大小,所以需要源站在提供下载文件时能返回 <code>Content-Length</code> 头字段,否则将抓取失败。</li> <li>当要保存的目标 Object 已存在时,本操作会对该 Object 的内容进行覆盖。</li> </ul> <h2 id="请求语法">请求语法</h2> <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> /&lt;object-name&gt; <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>x-qs-fetch-source<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;source site&gt;</span> </span></span><span style="display:flex;"><span>Host<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;bucket-name&gt;.&lt;zone-id&gt;.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;date&gt;</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><h2 id="请求参数">请求参数</h2> <p>无。</p> <h2 id="请求消息头">请求消息头</h2> <p>该 API 接口支持如下消息头:</p> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>说明</th> <th>是否必须</th> </tr> </thead> <tbody> <tr> <td>x-qs-fetch-source</td> <td>String</td> <td>被抓取的文件路径 (源链接)。链接形式为 <code>&lt;protocol&gt;://&lt;host&gt;[:port]/[path]</code>。 各字段说明如下:<br> - protocol:可为 <code>http</code> 或 <code>https</code>,默认为 <code>http</code> <br> - port: 默认为 <code>protocol</code> 对应的端口。 <br> - path:目录。QingStor 对象存储不会在源链接后边拼接请求中的 <code>&lt;object-name&gt;</code> 。若 <code>http</code> 为空,抓取的结果将取决于该站点默认页的设定。</td> <td>是</td> </tr> <tr> <td>x-qs-fetch-if-unmodified-since</td> <td>Date</td> <td>若指定的时间晚于 QingStor 中的目标 Object 被修改的时间,则从源链接抓取</td> <td>否</td> </tr> </tbody> </table> <p>除以上请求头以外,此接口还需要包含 Host、Date 等公共请求头。详细内容可参见 <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> <h2 id="请求消息体">请求消息体</h2> <p>无。</p> <h2 id="响应头">响应头</h2> <p>此接口仅包含公共响应头。关于公共响应头的更多信息,请参见 <a href="/storage/object-storage/api/common_header/#%E5%93%8D%E5%BA%94%E5%A4%B4%E5%AD%97%E6%AE%B5-response-header">公共响应头</a>。</p> <h2 id="错误码">错误码</h2> <table> <thead> <tr> <th>错误码</th> <th>错误描述</th> <th>HTTP 状态码</th> </tr> </thead> <tbody> <tr> <td>OK</td> <td>回源成功</td> <td>201</td> </tr> <tr> <td>-</td> <td>源 Object 不存在或目标 Bucket 不存在</td> <td>404</td> </tr> <tr> <td>fetch_in_process</td> <td>已经有另一个并发的 fetch 请求</td> <td>409</td> </tr> <tr> <td>upstream_failed</td> <td>源站不可用</td> <td>503</td> </tr> <tr> <td>fetch_throttled</td> <td>当前回源请求过多</td> <td>429</td> </tr> </tbody> </table> <p>其他错误码可参考 <a href="/storage/object-storage/api/error_code/#%E9%94%99%E8%AF%AF%E7%A0%81%E5%88%97%E8%A1%A8">错误码列表</a>。</p> <h2 id="示例">示例</h2> <h3 id="请求示例">请求示例</h3> <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> /myphoto.jpg <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">Sun, 14 Aug 2016 09:05:00 GMT</span> </span></span><span style="display:flex;"><span>x-qs-fetch-source<span style="color:#f92672">:</span> <span style="color:#ae81ff">http://image.example.com/photo.jpg</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">authorization string</span> </span></span></code></pre></div><h3 id="响应示例">响应示例</h3> <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">Sun, 14 Aug 2016 09:05:01 GMT</span> </span></span><span style="display:flex;"><span>Content-Length<span style="color:#f92672">:</span> <span style="color:#ae81ff">0</span> </span></span><span style="display:flex;"><span>Connection<span style="color:#f92672">:</span> <span style="color:#ae81ff">close</span> </span></span><span style="display:flex;"><span>Request-ID<span style="color:#f92672">:</span> <span style="color:#ae81ff">aa08cf7a43f611e5886952542e6ce14b</span> </span></span></code></pre></div><h2 id="sdk">SDK</h2> <p>此接口所对应的各语言 SDK 可参考 <a href="/storage/object-storage/sdk/">SDK 文档</a>。</p> Storage: Move Object /storage/object-storage/api/object/basic_opt/move/ Wed, 25 Nov 2020 10:08:56 +0900 /storage/object-storage/api/object/basic_opt/move/ <p>该 API 接口用于从源 Bucket 移动一个 Object 到目标 Bucket。</p> <h2 id="使用须知">使用须知</h2> <ul> <li>此操作要求请求者对源 Bucket 拥有可读权限,对目标 Bucket 拥有可写权限。</li> <li>源 Bucket 与目标 Bucket 可相同,因此该接口可用于重命名 Object。</li> <li>当目标 Object 已存在时,该操作会对目标对象的内容进行覆盖。</li> <li>目前只支持在同一个 Zone 内的 Bucket 间进行移动。</li> <li>如果源 Object 是加密的,那么目标 Object 也会使用同样的加密方式,且 Move 后会保留所有密文和元数据。对加密的源 Object 调用该 API 不需要提供加密请求头。</li> </ul> <h2 id="请求语法">请求语法</h2> <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> /&lt;object-name&gt; <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>x-qs-move-source<span style="color:#f92672">:</span> <span style="color:#ae81ff">/source-bucket/source-object</span> </span></span><span style="display:flex;"><span>Host<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;bucket-name&gt;.&lt;zone-id&gt;.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;date&gt;</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><h2 id="请求参数">请求参数</h2> <p>无。</p> <h2 id="请求消息头">请求消息头</h2> <p>该 API 接口支持如下消息头:</p> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>说明</th> <th>是否必须</th> </tr> </thead> <tbody> <tr> <td>x-qs-move-source</td> <td>String</td> <td>指定源 Object,格式为:<code>/source-bucket/source-object</code>, 需进行URL编码。</td> <td>是</td> </tr> <tr> <td>x-qs-move-source-if-modified-since</td> <td>Date</td> <td>若指定的时间早于源 Object 被修改的时间,则正常 Move 该 Object</td> <td>否</td> </tr> <tr> <td>x-qs-move-source-if-unmodified-since</td> <td>Date</td> <td>若指定的时间晚于源 Object 被修改的时间,则正常 Move 该 Object</td> <td>否</td> </tr> <tr> <td>x-qs-move-source-if-match</td> <td>String</td> <td>若源 Object 的 <code>ETag</code> 值符合该给定的值,则正常 Move 该 Object</td> <td>否</td> </tr> <tr> <td>x-qs-move-source-if-none-match</td> <td>String</td> <td>若源 Object 的 <code>ETag</code> 值不符合该给定的值,则正常 Move 该 Object</td> <td>否</td> </tr> </tbody> </table> <p>除以上请求头以外,此接口还需要包含 Host、Date 等公共请求头。详细内容可参见 <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> <h2 id="请求消息体">请求消息体</h2> <p>无。</p> <h2 id="响应头">响应头</h2> <p>若该 Object 有元数据,则响应头会携带元数据信息。具体可参考 <a href="/storage/object-storage/api/metadata/">对象元数据</a> 相关内容。</p> <p>若该 Object 为加密对象,则响应头会携带加密信息。具体可参考 <a href="/storage/object-storage/api/object/encryption/">加密对象</a> 相关内容。</p> <p>其他公共响应头可参考:<a href="/storage/object-storage/api/common_header/#%E5%93%8D%E5%BA%94%E5%A4%B4%E5%AD%97%E6%AE%B5-response-header">公共响应头</a>。</p> <h2 id="错误码">错误码</h2> <p>移动成功返回 201,假如源 Object 不存在或目标 Bucket 不存在返回 404;其他失败的返回码参考 <a href="/storage/object-storage/api/error_code/#%E9%94%99%E8%AF%AF%E7%A0%81%E5%88%97%E8%A1%A8">错误码列表</a>。</p> <h2 id="示例">示例</h2> <h3 id="请求示例">请求示例</h3> <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> /myphoto.jpg <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">Sun, 16 Aug 2015 09:05:00 GMT</span> </span></span><span style="display:flex;"><span>x-qs-move-source<span style="color:#f92672">:</span> <span style="color:#ae81ff">/source-bucket/source-object</span> </span></span><span style="display:flex;"><span>Authorization<span style="color:#f92672">:</span> <span style="color:#ae81ff">authorization string</span> </span></span></code></pre></div><h3 id="响应示例">响应示例</h3> <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">Sun, 16 Aug 2015 09:05:00 GMT</span> </span></span><span style="display:flex;"><span>ETag<span style="color:#f92672">:</span> <span style="color:#ae81ff">&#34;0c2f573d81194064b129e940edcefe9b&#34;</span> </span></span><span style="display:flex;"><span>Content-Length<span style="color:#f92672">:</span> <span style="color:#ae81ff">0</span> </span></span><span style="display:flex;"><span>Connection<span style="color:#f92672">:</span> <span style="color:#ae81ff">close</span> </span></span><span style="display:flex;"><span>Request-ID<span style="color:#f92672">:</span> <span style="color:#ae81ff">aa08cf7a43f611e5886952542e6ce14b</span> </span></span></code></pre></div><h2 id="sdk">SDK</h2> <p>此接口所对应的各语言 SDK 可参考 <a href="/storage/object-storage/sdk/">SDK 文档</a>。</p> Storage: Options Object /storage/object-storage/api/object/basic_opt/options_object/ Wed, 25 Nov 2020 10:08:56 +0900 /storage/object-storage/api/object/basic_opt/options_object/ <p>当用户的请求属于跨源请求时,需要在正式通信前,增加一次 HTTP 的查询请求,询问服务器当前所在的源,是否在服务器的白名单中,以及哪些 HTTP 动作,头信息是其可以使用的。</p> <p>该 API 接口便是用于向 QingStor 对象存储的 Object 发起预检请求,以确定是否能向该跨源请求发出回应。</p> <h2 id="请求语法">请求语法</h2> <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">OPTIONS</span> /&lt;object-name&gt; <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">&lt;bucket-name&gt;.pek3a.qingstor.com</span> </span></span><span style="display:flex;"><span>Date<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;date&gt;</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><span style="display:flex;"><span>Origin<span style="color:#f92672">:</span> <span style="color:#ae81ff">Origin</span> </span></span><span style="display:flex;"><span>Access-Control-Request-Method<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;http-method&gt;</span> </span></span><span style="display:flex;"><span>Access-Control-Request-Headers<span style="color:#f92672">:</span> <span style="color:#ae81ff">&lt;request-header&gt;</span> </span></span></code></pre></div><h2 id="请求参数">请求参数</h2> <p>无。</p> <h2 id="请求消息头">请求消息头</h2> <p>该 API 接口支持如下消息头:</p> <table> <thead> <tr> <th>字段</th> <th>类型</th> <th>说明</th> <th>是否必须</th> </tr> </thead> <tbody> <tr> <td>Origin</td> <td>String</td> <td>跨源请求的源。</td> <td>是</td> </tr> <tr> <td>Access-Control-Request-Method</td> <td>String</td> <td>跨源请求的 HTTP Method 。</td> <td>是</td> </tr> <tr> <td>Access-Control-Request-Headers</td> <td>String</td> <td>跨源请求中的 HTTP Headers (逗号分割的字符串)。</td> <td>否</td> </tr> </tbody> </table> <p>除以上请求头以外,此接口还需要包含 Host、Date 等公共请求头。详细内容可参见 <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> <h2 id="请求消息体">请求消息体</h2> <p>无。</p> <h2 id="响应头">响应头</h2> <p>使用该接口,QingStor 对象存储会返回如下响应头:</p> <table> <thead> <tr> <th>Header Name</th> <th>Type</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td>Access-Control-Allow-Origin</td> <td>String</td> <td>跨源请求所允许的源。如果跨源请求没有被允许,该头信息将不会存在于响应头中。</td> </tr> <tr> <td>Access-Control-Max-Age</td> <td>String</td> <td>预检请求的结果被缓存的时间(单位为秒)。</td> </tr> <tr> <td>Access-Control-Allow-Methods</td> <td>String</td> <td>跨源请求中的 HTTP Method 。如果跨源请求没有被允许,该头信息将不会存在于响应头中。</td> </tr> <tr> <td>Access-Control-Allow-Headers</td> <td>String</td> <td>跨源请求中可以被允许发送的 HTTP Headers (逗号分割的字符串)。</td> </tr> <tr> <td>Access-Control-Expose-Headers</td> <td>String</td> <td>跨源请求的响应中,客户端(如 JavaScript Client) 可以获取到的 HTTP Headers (逗号分割的字符串)。</td> </tr> </tbody> </table> <p>其他公共响应头可参考:<a href="/storage/object-storage/api/common_header/#%E5%93%8D%E5%BA%94%E5%A4%B4%E5%AD%97%E6%AE%B5-response-header">公共响应头</a>。</p> <h2 id="错误码">错误码</h2> <p>失败的返回码参考 <a href="/storage/object-storage/api/error_code/#%E9%94%99%E8%AF%AF%E7%A0%81%E5%88%97%E8%A1%A8">错误码列表</a>。</p> <h2 id="sdk">SDK</h2> <p>此接口所对应的各语言 SDK 可参考 <a href="/storage/object-storage/sdk/">SDK 文档</a>。</p>