<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>OPSaid – 对象存储</title><link>https://opsaid.net/docs/data-storage/object-storage/</link><description>Recent content in 对象存储 on OPSaid</description><generator>Hugo -- gohugo.io</generator><atom:link href="https://opsaid.net/docs/data-storage/object-storage/index.xml" rel="self" type="application/rss+xml"/><item><title>Docs: 关键术语</title><link>https://opsaid.net/docs/data-storage/object-storage/key-terms/</link><pubDate>Wed, 14 Jun 2023 10:53:20 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/key-terms/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>主要对对象存储一些基本概念做个介绍。&lt;/p>
&lt;h2 id="关键术语">关键术语&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>术语&lt;/th>
&lt;th>中文名&lt;/th>
&lt;th>示例&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>endpoint&lt;/td>
&lt;td>访问域名&lt;/td>
&lt;td>s3.amazonaws.com、ds.test.opsaid.net&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>region&lt;/td>
&lt;td>存储地域&lt;/td>
&lt;td>cn-guangzhou&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/RESTAPI.html">request_style&lt;/a>&lt;/td>
&lt;td>请求风格&lt;/td>
&lt;td>Virtual hosted‐style 或 path‐style（不建议）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>object_key&lt;/td>
&lt;td>对象名称&lt;/td>
&lt;td>hello/test.txt&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>bucket&lt;/td>
&lt;td>存储桶&lt;/td>
&lt;td>uptime&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>signature version&lt;/td>
&lt;td>签名版本&lt;/td>
&lt;td>支持 v4、v2&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="签名版本">签名版本&lt;/h2>
&lt;p>标准 S3 有两种签名方式，分布为&lt;a href="https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/RESTAuthentication.html">版本2&lt;/a>、&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html">版本4&lt;/a>。&lt;/p>
&lt;h3 id="计算-v2">计算 v2&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">Authorization&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;AWS&amp;#34;&lt;/span> + &lt;span style="color:#4e9a06">&amp;#34; &amp;#34;&lt;/span> + AWSAccessKeyId + &lt;span style="color:#4e9a06">&amp;#34;:&amp;#34;&lt;/span> + Signature&lt;span style="color:#000;font-weight:bold">;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">Signature&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> Base64&lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span> HMAC-SHA1&lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span> UTF-8-Encoding-Of&lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>YourSecretAccessKey&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>, UTF-8-Encoding-Of&lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span> StringToSign &lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>&lt;span style="color:#000;font-weight:bold">;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">StringToSign&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> HTTP-Verb + &lt;span style="color:#4e9a06">&amp;#34;\n&amp;#34;&lt;/span> +
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Content-MD5 + &lt;span style="color:#4e9a06">&amp;#34;\n&amp;#34;&lt;/span> +
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Content-Type + &lt;span style="color:#4e9a06">&amp;#34;\n&amp;#34;&lt;/span> +
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> Date + &lt;span style="color:#4e9a06">&amp;#34;\n&amp;#34;&lt;/span> +
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> CanonicalizedAmzHeaders +
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> CanonicalizedResource&lt;span style="color:#000;font-weight:bold">;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">CanonicalizedResource&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">[&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;/&amp;#34;&lt;/span> + Bucket &lt;span style="color:#ce5c00;font-weight:bold">]&lt;/span> +
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;HTTP-Request-URI, from the protocol name up to the query string&amp;gt; +
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#ce5c00;font-weight:bold">[&lt;/span> subresource, &lt;span style="color:#204a87;font-weight:bold">if&lt;/span> present. For example &lt;span style="color:#4e9a06">&amp;#34;?acl&amp;#34;&lt;/span>, &lt;span style="color:#4e9a06">&amp;#34;?location&amp;#34;&lt;/span>, or &lt;span style="color:#4e9a06">&amp;#34;?logging&amp;#34;&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">]&lt;/span>&lt;span style="color:#000;font-weight:bold">;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">CanonicalizedAmzHeaders&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> &amp;lt;described below&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>其中 &lt;code>CanonicalizedAmzHeaders&lt;/code> 遵守如下计算方式：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>步骤&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>将每个 HTTP 标头名称转换为小写。例如，“X-Amz-Date”改为“x-amz-date”&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>根据标头名称按字典顺序排列标头集&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>将相同名称的标头字段合并为一个“header-name:comma-separated-value-list”对，并按照 RFC 2616 中第 4.2 节中的规定，两个值之间不留空格。例如，可以将元数据标头“x-amz-meta-username: fred”和“x-amz-meta-username: barney”合并为单个标头“x-amz-meta-username: fred,barney”&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>通过将折叠空格（包括新建行）替换为单个空格，“展开”跨多个行的长标头（按照 RFC 2616 中第 4.2 节允许的方式）&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>删除标头中冒号周围的空格。例如，标头“x-amz-meta-username: fred,barney”改为“x-amz-meta-username:fred,barney”&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>最后，请向生成的列表中的每个标准化标头附加换行字符 (U+000A)。通过将此列表中所有的标头规范化为单个字符串，构建 CanonicalizedResource 元素&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="计算-v4">计算 v4&lt;/h3>
&lt;p>HTTP Authorization 请求头示例如下（增加换行是为了方便阅读，实际为空字符串）：&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>Authorization: AWS4-HMAC-SHA256
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">Credential&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>AKIAIOSFODNN7EXAMPLE/20130524/us-east-1/s3/aws4_request,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">SignedHeaders&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>host&lt;span style="color:#000;font-weight:bold">;&lt;/span>range&lt;span style="color:#000;font-weight:bold">;&lt;/span>x-amz-date,
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000">Signature&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>fe5f80f77d5fa3beca038a248ff027d0445342fe2855ddc963176630326f1024
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;table>
&lt;thead>
&lt;tr>
&lt;th>字段名称&lt;/th>
&lt;th>描述&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>AWS4-HMAC-SHA256&lt;/td>
&lt;td>使用版本 v4 签名，固定值&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Credential&lt;/td>
&lt;td>用户 AccessKeyId和范围信息，格式：{your-access-key-id}/{date:YYYYMMDD}/{region}/s3/aws4_request&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>SignedHeaders&lt;/td>
&lt;td>已签名请求头的列表，只需包含请求头名字，用分号分隔，必须全部小写，并按字符顺序对其进行排序&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Signature&lt;/td>
&lt;td>计算出的256位签名信息，以64个小写十六进制字符串形式表示&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>TODO;&lt;/p>
&lt;h2 id="数据结构">数据结构&lt;/h2>
&lt;h3 id="object">Object&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-golang" data-lang="golang">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">// An object consists of data and its descriptive metadata.
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span>&lt;span style="color:#204a87;font-weight:bold">type&lt;/span> &lt;span style="color:#000">Object&lt;/span> &lt;span style="color:#204a87;font-weight:bold">struct&lt;/span> &lt;span style="color:#000;font-weight:bold">{&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">_&lt;/span> &lt;span style="color:#204a87;font-weight:bold">struct&lt;/span>&lt;span style="color:#000;font-weight:bold">{}&lt;/span> &lt;span style="color:#4e9a06">`type:&amp;#34;structure&amp;#34;`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8f5902;font-style:italic">// The algorithm that was used to create a checksum of the object.
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#000">ChecksumAlgorithm&lt;/span> &lt;span style="color:#000;font-weight:bold">[]&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">*&lt;/span>&lt;span style="color:#204a87;font-weight:bold">string&lt;/span> &lt;span style="color:#4e9a06">`type:&amp;#34;list&amp;#34; flattened:&amp;#34;true&amp;#34; enum:&amp;#34;ChecksumAlgorithm&amp;#34;`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8f5902;font-style:italic">// The entity tag is a hash of the object. The ETag reflects changes only to
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">// the contents of an object, not its metadata. The ETag may or may not be an
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">// MD5 digest of the object data. Whether or not it is depends on how the object
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">// was created and how it is encrypted as described below:
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">//
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">// * Objects created by the PUT Object, POST Object, or Copy operation, or
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">// through the AWS Management Console, and are encrypted by SSE-S3 or plaintext,
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">// have ETags that are an MD5 digest of their object data.
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">//
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">// * Objects created by the PUT Object, POST Object, or Copy operation, or
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">// through the AWS Management Console, and are encrypted by SSE-C or SSE-KMS,
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">// have ETags that are not an MD5 digest of their object data.
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">//
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">// * If an object is created by either the Multipart Upload or Part Copy
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">// operation, the ETag is not an MD5 digest, regardless of the method of
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">// encryption.
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#000">ETag&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">*&lt;/span>&lt;span style="color:#204a87;font-weight:bold">string&lt;/span> &lt;span style="color:#4e9a06">`type:&amp;#34;string&amp;#34;`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8f5902;font-style:italic">// The name that you assign to an object. You use the object key to retrieve
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#8f5902;font-style:italic">// the object.
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#000">Key&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">*&lt;/span>&lt;span style="color:#204a87;font-weight:bold">string&lt;/span> &lt;span style="color:#4e9a06">`min:&amp;#34;1&amp;#34; type:&amp;#34;string&amp;#34;`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8f5902;font-style:italic">// The date the Object was Last Modified
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#000">LastModified&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">*&lt;/span>&lt;span style="color:#000">time&lt;/span>&lt;span style="color:#000;font-weight:bold">.&lt;/span>&lt;span style="color:#000">Time&lt;/span> &lt;span style="color:#4e9a06">`type:&amp;#34;timestamp&amp;#34;`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8f5902;font-style:italic">// The owner of the object
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#000">Owner&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">*&lt;/span>&lt;span style="color:#000">Owner&lt;/span> &lt;span style="color:#4e9a06">`type:&amp;#34;structure&amp;#34;`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8f5902;font-style:italic">// Size in bytes of the object
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#000">Size&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">*&lt;/span>&lt;span style="color:#204a87;font-weight:bold">int64&lt;/span> &lt;span style="color:#4e9a06">`type:&amp;#34;integer&amp;#34;`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#8f5902;font-style:italic">// The class of storage used to store the object.
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&lt;/span> &lt;span style="color:#000">StorageClass&lt;/span> &lt;span style="color:#ce5c00;font-weight:bold">*&lt;/span>&lt;span style="color:#204a87;font-weight:bold">string&lt;/span> &lt;span style="color:#4e9a06">`type:&amp;#34;string&amp;#34; enum:&amp;#34;ObjectStorageClass&amp;#34;`&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#000;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="常用接口">常用接口&lt;/h2>
&lt;p>以下 HTTP 接口均以 虚拟主机风格展示。&lt;/p>
&lt;h3 id="bucket-相关">Bucket 相关&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>AWS S3 接口&lt;/th>
&lt;th>HTTP 接口&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="https://opsaid.net/docs/data-storage/object-storage/create-bucket/">CreateBucket&lt;/a>&lt;/td>
&lt;td>PUT {bucket}.{endpoint}/&lt;/td>
&lt;td>创建存储桶&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://opsaid.net/docs/data-storage/object-storage/head-bucket/">HeadBucket&lt;/a>&lt;/td>
&lt;td>HEAD {bucket}.{endpoint}/&lt;/td>
&lt;td>验证存储桶是否存在或是否有权限&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://opsaid.net/docs/data-storage/object-storage/delete-bucket">DeleteBucket&lt;/a>&lt;/td>
&lt;td>DELETE {bucket}.{endpoint}/&lt;/td>
&lt;td>删除存储桶&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://opsaid.net/docs/data-storage/object-storage/list-buckets/">ListBuckets&lt;/a>&lt;/td>
&lt;td>GET {endpoint}/&lt;/td>
&lt;td>列出有权限的存储桶&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://opsaid.net/docs/data-storage/object-storage/get-bucket-location">GetBucketLocation&lt;/a>&lt;/td>
&lt;td>GET /?location&lt;/td>
&lt;td>查询当前 bucket 所在区域&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="object-相关">Object 相关&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>AWS S3 接口&lt;/th>
&lt;th>HTTP 接口&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="https://opsaid.net/docs/data-storage/object-storage/copy-object/">CopyObject&lt;/a>&lt;/td>
&lt;td>PUT {bucket}.{endpoint}/{object_key}&lt;/td>
&lt;td>拷贝对象&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://opsaid.net/docs/data-storage/object-storage/delete-object/">DeleteObject&lt;/a>&lt;/td>
&lt;td>DELETE {bucket}.{endpoint}/{object_key}&lt;/td>
&lt;td>删除对象&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://opsaid.net/docs/data-storage/object-storage/delete-objects/">DeleteObjects&lt;/a>&lt;/td>
&lt;td>POST {bucket}.{endpoint}/?delete&lt;/td>
&lt;td>批量删除&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://opsaid.net/docs/data-storage/object-storage/get-object/">GetObject&lt;/a>&lt;/td>
&lt;td>GET {bucket}.{endpoint}/{object_key}&lt;/td>
&lt;td>获取对象&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://opsaid.net/docs/data-storage/object-storage/head-object/">HeadObject&lt;/a>&lt;/td>
&lt;td>GET {bucket}.{endpoint}/{object_key}&lt;/td>
&lt;td>查询对象&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://opsaid.net/docs/data-storage/object-storage/list-objects/">ListObjects&lt;/a>&lt;/td>
&lt;td>GET {bucket}.{endpoint}/?delimiter=&lt;/td>
&lt;td>列出对象&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://opsaid.net/docs/data-storage/object-storage/list-objects-v2/">ListObjectsV2&lt;/a>&lt;/td>
&lt;td>GET {bucket}.{endpoint}/?list-type=2&lt;/td>
&lt;td>列出对象&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://opsaid.net/docs/data-storage/object-storage/put-object/">PutObject&lt;/a>&lt;/td>
&lt;td>PUT {bucket}.{endpoint}/{object_key}&lt;/td>
&lt;td>创建对象&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="分片相关">分片相关&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>AWS S3 接口&lt;/th>
&lt;th>HTTP 接口&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>CreateMultipartUpload&lt;/td>
&lt;td>POST {bucket}.{endpoint}/{object_key}?uploads&lt;/td>
&lt;td>xx&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>UploadPart&lt;/td>
&lt;td>PUT {bucket}.{endpoint}/{object_key}&lt;/td>
&lt;td>xx&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CompleteMultipartUpload&lt;/td>
&lt;td>POST {bucket}.{endpoint}/{object_key}?uploadId=&lt;/td>
&lt;td>xx&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>AbortMultipartUpload&lt;/td>
&lt;td>DELETE {bucket}.{endpoint}/{object_key}?uploadId=&lt;/td>
&lt;td>xx&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>UploadPartCopy&lt;/td>
&lt;td>PUT {bucket}.{endpoint}/{object_key}?partNumber=&amp;amp;uploadId=&lt;/td>
&lt;td>xx&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ListMultipartUploads&lt;/td>
&lt;td>GET {bucket}.{endpoint}/?uploads&lt;/td>
&lt;td>xx&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ListParts&lt;/td>
&lt;td>GET {bucket}.{endpoint}/{object_key}?max-parts=&amp;amp;part-number-marker=&amp;amp;uploadId=&lt;/td>
&lt;td>xx&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table></description></item><item><title>Docs: 云提供商</title><link>https://opsaid.net/docs/data-storage/object-storage/providers/</link><pubDate>Fri, 16 Jun 2023 16:25:52 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/providers/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>当前支持 S3 标准接口的服务。&lt;/p>
&lt;h2 id="存储提供商">存储提供商&lt;/h2>
&lt;h3 id="大陆公有云">大陆公有云&lt;/h3>
&lt;p>主要兼容 S3 接口的对象存储服务：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>免费空间（GB）&lt;/th>
&lt;th>存储空间（元/GB/月）&lt;/th>
&lt;th>免费出流量&lt;/th>
&lt;th>下载流量（元/GB/月）&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="https://help.aliyun.com/document_detail/357693.html">阿里云 OSS&lt;/a>&lt;/td>
&lt;td>5&lt;/td>
&lt;td>0.12&lt;/td>
&lt;td>5&lt;/td>
&lt;td>0.50&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://docs.qingcloud.com/qingstor/s3/">青云 QingStor&lt;/a>&lt;/td>
&lt;td>10&lt;/td>
&lt;td>0.147&lt;/td>
&lt;td>1&lt;/td>
&lt;td>0.45&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://ecloud.10086.cn/home/product-introduction/eos">移动云 ECOS&lt;/a>&lt;/td>
&lt;td>-&lt;/td>
&lt;td>0.12&lt;/td>
&lt;td>-&lt;/td>
&lt;td>0.4&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://www.huaweicloud.com/product/obs/price.html">华为云 OBS&lt;/a>&lt;/td>
&lt;td>-&lt;/td>
&lt;td>0.099&lt;/td>
&lt;td>-&lt;/td>
&lt;td>0.50&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://sf.163.com/product/nos">网易数帆 NOS&lt;/a>&lt;/td>
&lt;td>50&lt;/td>
&lt;td>0.123&lt;/td>
&lt;td>20&lt;/td>
&lt;td>0.45&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://cloud.tencent.com/product/cos">腾讯云 COS&lt;/a>&lt;/td>
&lt;td>50&lt;/td>
&lt;td>0.099&lt;/td>
&lt;td>10&lt;/td>
&lt;td>0.50&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://www.qiniu.com/products/kodo">七牛云 Kodo&lt;/a>&lt;/td>
&lt;td>10&lt;/td>
&lt;td>0.098&lt;/td>
&lt;td>10&lt;/td>
&lt;td>0.26&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="海外公有云">海外公有云&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>免费空间（GB）&lt;/th>
&lt;th>存储空间（元/GB/月）&lt;/th>
&lt;th>免费出流量&lt;/th>
&lt;th>下载流量（元/GB/月）&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Amazon S3&lt;/td>
&lt;td>10&lt;/td>
&lt;td>0.154&lt;/td>
&lt;td>TODO;&lt;/td>
&lt;td>0.026&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://www.backblaze.com/b2/docs/s3_compatible_api.html">Backblaze B2&lt;/a>&lt;/td>
&lt;td>10&lt;/td>
&lt;td>0.035&lt;/td>
&lt;td>TODO;&lt;/td>
&lt;td>0.07&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://developers.cloudflare.com/r2/api/s3/">Cloudflare R2&lt;/a>&lt;/td>
&lt;td>10&lt;/td>
&lt;td>0.105&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://www.arvancloud.ir/en/products/cloud-storage">ArvanCloud AOS&lt;/a>&lt;/td>
&lt;td>5&lt;/td>
&lt;td>0.16&lt;/td>
&lt;td>20&lt;/td>
&lt;td>0.094&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;a href="https://www.digitalocean.com/products/spaces">DigitalOcean Spaces&lt;/a>&lt;/td>
&lt;td>-&lt;/td>
&lt;td>0.14&lt;/td>
&lt;td>-&lt;/td>
&lt;td>0.07&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="自建私有云">自建私有云&lt;/h3>
&lt;p>主要兼容 S3 接口的对象存储服务：&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>免费空间（GB）&lt;/th>
&lt;th>存储空间（元/GB/月）&lt;/th>
&lt;th>免费出流量&lt;/th>
&lt;th>下载流量（元/GB/月）&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Ceph&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;td>-&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table></description></item><item><title>Docs: 接口：CreateBucket</title><link>https://opsaid.net/docs/data-storage/object-storage/create-bucket/</link><pubDate>Mon, 19 Jun 2023 11:00:32 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/create-bucket/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>创建存储桶，&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateBucket.html">官方文档&lt;/a>。&lt;/p>
&lt;h2 id="接口解析">接口解析&lt;/h2>
&lt;h3 id="请求语法">请求语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>PUT / HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: &lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>bucket&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>.&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>endpoint&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-acl: ACL
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-grant-full-control: GrantFullControl
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-grant-read: GrantRead
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-grant-read-acp: GrantReadACP
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-grant-write: GrantWrite
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-grant-write-acp: GrantWriteACP
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-bucket-object-lock-enabled: ObjectLockEnabledForBucket
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-object-ownership: ObjectOwnership
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;?xml &lt;span style="color:#000">version&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;1.0&amp;#34;&lt;/span> &lt;span style="color:#000">encoding&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;UTF-8&amp;#34;&lt;/span>?&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;CreateBucketConfiguration &lt;span style="color:#000">xmlns&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;http://s3.amazonaws.com/doc/2006-03-01/&amp;#34;&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;LocationConstraint&amp;gt;string&amp;lt;/LocationConstraint&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;/CreateBucketConfiguration&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="url-参数">URL 参数&lt;/h3>
&lt;p>TODO;&lt;/p>
&lt;h3 id="请求结构">请求结构&lt;/h3>
&lt;p>TODO;&lt;/p>
&lt;h3 id="响应语法">响应语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>HTTP/1.1 200
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Location: Location
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="请求示例">请求示例&lt;/h2>
&lt;p>通过 rclone 进行测试&lt;/p>
&lt;h3 id="测试指令">测试指令&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="请求响应">请求响应&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs: 接口：GetBucketLocation</title><link>https://opsaid.net/docs/data-storage/object-storage/get-bucket-location/</link><pubDate>Mon, 19 Jun 2023 11:00:32 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/get-bucket-location/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>查询桶所在区域，&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketLocation.html">官方文档&lt;/a>。&lt;/p>
&lt;h2 id="接口解析">接口解析&lt;/h2>
&lt;h3 id="请求语法">请求语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>GET /?location HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: &lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>bucket&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>.&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>endpoint&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="url-参数">URL 参数&lt;/h3>
&lt;p>TODO;&lt;/p>
&lt;h3 id="请求结构">请求结构&lt;/h3>
&lt;p>TODO;&lt;/p>
&lt;h3 id="响应语法">响应语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>HTTP/1.1 200
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">&amp;lt;LocationConstraint&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;LocationConstraint&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/LocationConstraint&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/LocationConstraint&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="请求示例">请求示例&lt;/h2>
&lt;p>通过 rclone 进行测试&lt;/p>
&lt;h3 id="测试指令">测试指令&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="请求响应">请求响应&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs: 接口：HeadBucket</title><link>https://opsaid.net/docs/data-storage/object-storage/head-bucket/</link><pubDate>Mon, 19 Jun 2023 11:00:32 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/head-bucket/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>查看存储桶，&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadBucket.html">官方文档&lt;/a>。&lt;/p>
&lt;h2 id="接口解析">接口解析&lt;/h2>
&lt;h3 id="请求语法">请求语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>HEAD / HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: &lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>bucket&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>.&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>endpoint&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-expected-bucket-owner: ExpectedBucketOwner
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="url-参数">URL 参数&lt;/h3>
&lt;p>TODO;&lt;/p>
&lt;h3 id="请求结构">请求结构&lt;/h3>
&lt;p>无。&lt;/p>
&lt;h3 id="响应语法">响应语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>HTTP/1.1 200
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="请求示例">请求示例&lt;/h2>
&lt;p>通过 rclone 进行测试&lt;/p>
&lt;h3 id="测试指令">测试指令&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="请求响应">请求响应&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs: 接口：DeleteBucket</title><link>https://opsaid.net/docs/data-storage/object-storage/delete-bucket/</link><pubDate>Mon, 19 Jun 2023 11:00:32 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/delete-bucket/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>删除存储桶，&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteBucket.html">官方文档&lt;/a>。&lt;/p>
&lt;h2 id="接口解析">接口解析&lt;/h2>
&lt;h3 id="请求语法">请求语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>DELETE / HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: &lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>bucket&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>.&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>endpoint&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-expected-bucket-owner: ExpectedBucketOwner
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="url-参数">URL 参数&lt;/h3>
&lt;p>TODO;&lt;/p>
&lt;h3 id="请求结构">请求结构&lt;/h3>
&lt;p>无。&lt;/p>
&lt;h3 id="响应语法">响应语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>HTTP/1.1 204
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="请求示例">请求示例&lt;/h2>
&lt;p>通过 rclone 进行测试&lt;/p>
&lt;h3 id="测试指令">测试指令&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="请求响应">请求响应&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs: 接口：ListBuckets</title><link>https://opsaid.net/docs/data-storage/object-storage/list-buckets/</link><pubDate>Mon, 19 Jun 2023 11:00:32 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/list-buckets/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>列出该用户可访问的存储桶，&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListBuckets.html">官方文档&lt;/a>。&lt;/p>
&lt;h2 id="接口解析">接口解析&lt;/h2>
&lt;h3 id="请求语法">请求语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>GET / HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: &lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>endpoint&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="url-参数">URL 参数&lt;/h3>
&lt;p>无。&lt;/p>
&lt;h3 id="请求结构">请求结构&lt;/h3>
&lt;p>无。&lt;/p>
&lt;h3 id="响应语法">响应语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>HTTP/1.1 200
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">&amp;lt;ListAllMyBucketsResult&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Buckets&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Bucket&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;CreationDate&amp;gt;&lt;/span>timestamp&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/CreationDate&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Name&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Name&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Bucket&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Buckets&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Owner&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;DisplayName&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/DisplayName&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;ID&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ID&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Owner&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ListAllMyBucketsResult&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="请求示例">请求示例&lt;/h2>
&lt;p>通过 rclone 进行测试&lt;/p>
&lt;h3 id="测试指令">测试指令&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>./rclone &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --dump bodies &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --s3-force-path-style&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#204a87">false&lt;/span> &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> lsd &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> minio:
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="请求响应">请求响应&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>2023/06/21 14:46:45 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:46:45 DEBUG : HTTP REQUEST &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x14000134300&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:46:45 DEBUG : GET / HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: minio.dev.173ops.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>User-Agent: rclone/v1.62.2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Authorization: XXXX
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Date: 20230621T064645Z
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Encoding: gzip
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:46:45 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:46:45 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:46:45 DEBUG : HTTP RESPONSE &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x14000134300&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:46:45 DEBUG : HTTP/1.1 &lt;span style="color:#0000cf;font-weight:bold">200&lt;/span> OK
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length: &lt;span style="color:#0000cf;font-weight:bold">462&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Ranges: bytes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Connection: keep-alive
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Security-Policy: block-all-mixed-content
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type: application/xml
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Date: Wed, &lt;span style="color:#0000cf;font-weight:bold">21&lt;/span> Jun &lt;span style="color:#0000cf;font-weight:bold">2023&lt;/span> 06:46:45 GMT
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Server: nginx/1.16.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Strict-Transport-Security: max-age&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>31536000&lt;span style="color:#000;font-weight:bold">;&lt;/span> includeSubDomains
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Origin
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Accept-Encoding
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Id-2: dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Request-Id: 176A99B34DCCDFA0
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Content-Type-Options: nosniff
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Xss-Protection: 1&lt;span style="color:#000;font-weight:bold">;&lt;/span> &lt;span style="color:#000">mode&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>block
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;?xml &lt;span style="color:#000">version&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;1.0&amp;#34;&lt;/span> &lt;span style="color:#000">encoding&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;UTF-8&amp;#34;&lt;/span>?&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;ListAllMyBucketsResult
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">xmlns&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;http://s3.amazonaws.com/doc/2006-03-01/&amp;#34;&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Owner&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;ID&amp;gt;02d6176db174dc93cb1b899f7c6078f08654445fe8cf1b6ce98d8855f66bdbf4&amp;lt;/ID&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;DisplayName&amp;gt;minio&amp;lt;/DisplayName&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/Owner&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Buckets&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Bucket&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Name&amp;gt;is-a-big-tenant&amp;lt;/Name&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;CreationDate&amp;gt;2023-06-14T10:10:39.152Z&amp;lt;/CreationDate&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/Bucket&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Bucket&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Name&amp;gt;uptime&amp;lt;/Name&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;CreationDate&amp;gt;2023-06-20T10:25:49.245Z&amp;lt;/CreationDate&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/Bucket&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/Buckets&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;/ListAllMyBucketsResult&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:46:45 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs: 接口：CopyObject</title><link>https://opsaid.net/docs/data-storage/object-storage/copy-object/</link><pubDate>Mon, 19 Jun 2023 11:00:32 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/copy-object/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>拷贝文件 &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html">官方文档&lt;/a>&lt;/p>
&lt;h2 id="接口解析">接口解析&lt;/h2>
&lt;h3 id="请求语法">请求语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>PUT /&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>object_key&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span> HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: &lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>bucket&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>.&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>endpoint&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-acl: ACL
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Cache-Control: CacheControl
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-algorithm: ChecksumAlgorithm
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Disposition: ContentDisposition
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Encoding: ContentEncoding
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Language: ContentLanguage
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type: ContentType
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-copy-source: CopySource
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-copy-source-if-match: CopySourceIfMatch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-copy-source-if-modified-since: CopySourceIfModifiedSince
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-copy-source-if-none-match: CopySourceIfNoneMatch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-copy-source-if-unmodified-since: CopySourceIfUnmodifiedSince
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Expires: Expires
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-grant-full-control: GrantFullControl
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-grant-read: GrantRead
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-grant-read-acp: GrantReadACP
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-grant-write-acp: GrantWriteACP
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-metadata-directive: MetadataDirective
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-tagging-directive: TaggingDirective
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption: ServerSideEncryption
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-storage-class: StorageClass
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-website-redirect-location: WebsiteRedirectLocation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-algorithm: SSECustomerAlgorithm
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-key: SSECustomerKey
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-key-MD5: SSECustomerKeyMD5
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-aws-kms-key-id: SSEKMSKeyId
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-context: SSEKMSEncryptionContext
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-bucket-key-enabled: BucketKeyEnabled
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-copy-source-server-side-encryption-customer-algorithm: CopySourceSSECustomerAlgorithm
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-copy-source-server-side-encryption-customer-key: CopySourceSSECustomerKey
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-copy-source-server-side-encryption-customer-key-MD5: CopySourceSSECustomerKeyMD5
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-payer: RequestPayer
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-tagging: Tagging
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-object-lock-mode: ObjectLockMode
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-object-lock-retain-until-date: ObjectLockRetainUntilDate
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-object-lock-legal-hold: ObjectLockLegalHoldStatus
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-expected-bucket-owner: ExpectedBucketOwner
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-source-expected-bucket-owner: ExpectedSourceBucketOwner
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="url-参数">URL 参数&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>类型&lt;/th>
&lt;th>是否必须&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;/table>
&lt;h3 id="请求结构">请求结构&lt;/h3>
&lt;p>无。&lt;/p>
&lt;h3 id="响应语法">响应语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>HTTP/1.1 200
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-expiration: Expiration
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-copy-source-version-id: CopySourceVersionId
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-version-id: VersionId
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption: ServerSideEncryption
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-algorithm: SSECustomerAlgorithm
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-key-MD5: SSECustomerKeyMD5
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-aws-kms-key-id: SSEKMSKeyId
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-context: SSEKMSEncryptionContext
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-bucket-key-enabled: BucketKeyEnabled
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-charged: RequestCharged
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">&amp;lt;CopyObjectResult&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;ETag&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ETag&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;LastModified&amp;gt;&lt;/span>timestamp&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/LastModified&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;ChecksumCRC32&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ChecksumCRC32&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;ChecksumCRC32C&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ChecksumCRC32C&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;ChecksumSHA1&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ChecksumSHA1&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;ChecksumSHA256&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ChecksumSHA256&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/CopyObjectResult&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="响应参数">响应参数&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>类型&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;/table>
&lt;h2 id="请求示例">请求示例&lt;/h2>
&lt;p>通过 rclone 进行测试&lt;/p>
&lt;h3 id="测试指令">测试指令&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>./rclone &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --dump bodies &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --s3-force-path-style&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#204a87">false&lt;/span> &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> moveto &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> minio:uptime/hello/a.txt minio:uptime/copy/from/hello-a.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="请求响应">请求响应&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>2023/06/21 13:53:53 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 13:53:53 DEBUG : HTTP REQUEST &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x14000828400&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 13:53:53 DEBUG : PUT /copy/from/hello-a.txt HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: uptime.minio.dev.173ops.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>User-Agent: rclone/v1.62.2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length: &lt;span style="color:#0000cf;font-weight:bold">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Authorization: XXXX
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Acl: default
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Copy-Source: uptime/hello/a.txt
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Date: 20230621T055353Z
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Metadata-Directive: COPY
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Encoding: gzip
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 13:53:53 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 13:53:53 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 13:53:53 DEBUG : HTTP RESPONSE &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x14000828400&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 13:53:53 DEBUG : HTTP/1.1 &lt;span style="color:#0000cf;font-weight:bold">200&lt;/span> OK
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length: &lt;span style="color:#0000cf;font-weight:bold">232&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Ranges: bytes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Connection: keep-alive
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Security-Policy: block-all-mixed-content
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type: application/xml
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Date: Wed, &lt;span style="color:#0000cf;font-weight:bold">21&lt;/span> Jun &lt;span style="color:#0000cf;font-weight:bold">2023&lt;/span> 05:53:53 GMT
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Etag: &lt;span style="color:#4e9a06">&amp;#34;6f5902ac237024bdd0c176cb93063dc4&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Server: nginx/1.16.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Strict-Transport-Security: max-age&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>31536000&lt;span style="color:#000;font-weight:bold">;&lt;/span> includeSubDomains
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Origin
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Accept-Encoding
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Id-2: dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Request-Id: 176A96D09F8DB7C8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Content-Type-Options: nosniff
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Xss-Protection: 1&lt;span style="color:#000;font-weight:bold">;&lt;/span> &lt;span style="color:#000">mode&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>block
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;?xml &lt;span style="color:#000">version&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;1.0&amp;#34;&lt;/span> &lt;span style="color:#000">encoding&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;UTF-8&amp;#34;&lt;/span>?&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;CopyObjectResult
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">xmlns&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;http://s3.amazonaws.com/doc/2006-03-01/&amp;#34;&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;LastModified&amp;gt;2023-06-21T05:53:53.178Z&amp;lt;/LastModified&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;ETag&amp;gt;&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>&lt;span style="color:#8f5902;font-style:italic">#34;6f5902ac237024bdd0c176cb93063dc4&amp;amp;#34;&amp;lt;/ETag&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;/CopyObjectResult&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 13:53:53 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs: 接口：DeleteObject</title><link>https://opsaid.net/docs/data-storage/object-storage/delete-object/</link><pubDate>Mon, 19 Jun 2023 11:00:32 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/delete-object/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>删除文件 &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObject.html">官方文档&lt;/a>&lt;/p>
&lt;h2 id="接口解析">接口解析&lt;/h2>
&lt;h3 id="请求语法">请求语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>DELETE /&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>object_key&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>?versionId&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: &lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>bucket&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>.&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>endpoint&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-mfa: MFA
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-payer: RequestPayer
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-bypass-governance-retention: BypassGovernanceRetention
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-expected-bucket-owner: ExpectedBucketOwner
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="url-参数">URL 参数&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>类型&lt;/th>
&lt;th>是否必须&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;/table>
&lt;h3 id="请求结构">请求结构&lt;/h3>
&lt;p>无。&lt;/p>
&lt;h3 id="响应语法">响应语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>HTTP/1.1 204
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-delete-marker: DeleteMarker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-version-id: VersionId
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-charged: RequestCharged
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="响应参数">响应参数&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>类型&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;/table>
&lt;h2 id="请求示例">请求示例&lt;/h2>
&lt;p>通过 rclone 进行测试&lt;/p>
&lt;h3 id="测试指令">测试指令&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>./rclone &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --dump bodies &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --s3-force-path-style&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#204a87">false&lt;/span> &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> deletefile &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> minio:uptime/copy/from/hello-a.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="请求响应">请求响应&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>2023/06/21 14:00:33 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:00:33 DEBUG : HTTP REQUEST &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x1400073a300&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:00:33 DEBUG : DELETE /copy/from/hello-a.txt HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: uptime.minio.dev.173ops.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>User-Agent: rclone/v1.62.2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Authorization: XXXX
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Date: 20230621T060033Z
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Encoding: gzip
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:00:33 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:00:33 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:00:33 DEBUG : HTTP RESPONSE &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x1400073a300&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:00:33 DEBUG : HTTP/1.1 &lt;span style="color:#0000cf;font-weight:bold">204&lt;/span> No Content
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Ranges: bytes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Connection: keep-alive
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Security-Policy: block-all-mixed-content
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Date: Wed, &lt;span style="color:#0000cf;font-weight:bold">21&lt;/span> Jun &lt;span style="color:#0000cf;font-weight:bold">2023&lt;/span> 06:00:33 GMT
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Server: nginx/1.16.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Strict-Transport-Security: max-age&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>31536000&lt;span style="color:#000;font-weight:bold">;&lt;/span> includeSubDomains
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Origin
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Accept-Encoding
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Id-2: dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Request-Id: 176A972DD823EE60
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Content-Type-Options: nosniff
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Xss-Protection: 1&lt;span style="color:#000;font-weight:bold">;&lt;/span> &lt;span style="color:#000">mode&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>block
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:00:33 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs: 接口：DeleteObjects</title><link>https://opsaid.net/docs/data-storage/object-storage/delete-objects/</link><pubDate>Mon, 19 Jun 2023 11:00:32 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/delete-objects/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>批量删除文件，&lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_DeleteObjects.html">官方文档&lt;/a>。&lt;/p>
&lt;h2 id="接口解析">接口解析&lt;/h2>
&lt;h3 id="请求语法">请求语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>POST /?delete HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: &lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>bucket&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>.&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>endpoint&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-mfa: MFA
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-payer: RequestPayer
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-bypass-governance-retention: BypassGovernanceRetention
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-expected-bucket-owner: ExpectedBucketOwner
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-sdk-checksum-algorithm: ChecksumAlgorithm
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;?xml &lt;span style="color:#000">version&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;1.0&amp;#34;&lt;/span> &lt;span style="color:#000">encoding&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;UTF-8&amp;#34;&lt;/span>?&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;Delete &lt;span style="color:#000">xmlns&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;http://s3.amazonaws.com/doc/2006-03-01/&amp;#34;&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Object&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Key&amp;gt;string&amp;lt;/Key&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;VersionId&amp;gt;string&amp;lt;/VersionId&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/Object&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Quiet&amp;gt;boolean&amp;lt;/Quiet&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;/Delete&amp;gt;
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="url-参数">URL 参数&lt;/h3>
&lt;p>TODO;&lt;/p>
&lt;h3 id="请求结构">请求结构&lt;/h3>
&lt;p>TODO;&lt;/p>
&lt;h3 id="响应语法">响应语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>HTTP/1.1 200
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-charged: RequestCharged
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">&amp;lt;DeleteResult&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Deleted&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;DeleteMarker&amp;gt;&lt;/span>boolean&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/DeleteMarker&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;DeleteMarkerVersionId&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/DeleteMarkerVersionId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Key&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Key&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;VersionId&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/VersionId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Deleted&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Error&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Code&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Code&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Key&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Key&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Message&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Message&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;VersionId&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/VersionId&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Error&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/DeleteResult&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="请求示例">请求示例&lt;/h2>
&lt;p>通过 rclone 进行测试&lt;/p>
&lt;h3 id="测试指令">测试指令&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="请求响应">请求响应&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs: 接口：GetObject</title><link>https://opsaid.net/docs/data-storage/object-storage/get-object/</link><pubDate>Mon, 19 Jun 2023 11:00:32 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/get-object/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>获取文件 &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetObject.html">官方文档&lt;/a>&lt;/p>
&lt;h2 id="接口解析">接口解析&lt;/h2>
&lt;h3 id="请求语法">请求语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>GET /&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>object_key&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>?partNumber&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>response-cache-control&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>response-content-disposition&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>response-content-encoding&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>response-content-language&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>response-content-type&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>response-expires&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>&lt;span style="color:#000">versionId&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: &lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>bucket&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>.&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>endpoint&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>If-Match: IfMatch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>If-Modified-Since: IfModifiedSince
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>If-None-Match: IfNoneMatch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>If-Unmodified-Since: IfUnmodifiedSince
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Range: Range
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-algorithm: SSECustomerAlgorithm
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-key: SSECustomerKey
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-key-MD5: SSECustomerKeyMD5
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-payer: RequestPayer
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-expected-bucket-owner: ExpectedBucketOwner
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-mode: ChecksumMode
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="url-参数">URL 参数&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>类型&lt;/th>
&lt;th>是否必须&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;/table>
&lt;h3 id="请求结构">请求结构&lt;/h3>
&lt;p>无。&lt;/p>
&lt;h3 id="响应语法">响应语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>HTTP/1.1 200
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-delete-marker: DeleteMarker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>accept-ranges: AcceptRanges
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-expiration: Expiration
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-restore: Restore
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Last-Modified: LastModified
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length: ContentLength
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ETag: ETag
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-crc32: ChecksumCRC32
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-crc32c: ChecksumCRC32C
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-sha1: ChecksumSHA1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-sha256: ChecksumSHA256
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-missing-meta: MissingMeta
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-version-id: VersionId
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Cache-Control: CacheControl
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Disposition: ContentDisposition
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Encoding: ContentEncoding
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Language: ContentLanguage
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Range: ContentRange
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type: ContentType
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Expires: Expires
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-website-redirect-location: WebsiteRedirectLocation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption: ServerSideEncryption
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-algorithm: SSECustomerAlgorithm
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-key-MD5: SSECustomerKeyMD5
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-aws-kms-key-id: SSEKMSKeyId
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-bucket-key-enabled: BucketKeyEnabled
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-storage-class: StorageClass
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-charged: RequestCharged
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-replication-status: ReplicationStatus
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-mp-parts-count: PartsCount
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-tagging-count: TagCount
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-object-lock-mode: ObjectLockMode
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-object-lock-retain-until-date: ObjectLockRetainUntilDate
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-object-lock-legal-hold: ObjectLockLegalHoldStatus
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Body
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="响应参数">响应参数&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>类型&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;/table>
&lt;h2 id="请求示例">请求示例&lt;/h2>
&lt;p>通过 rclone 进行测试&lt;/p>
&lt;h3 id="测试指令">测试指令&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>./rclone &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --dump bodies &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --s3-force-path-style&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#204a87">false&lt;/span> &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> cat &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> minio:uptime/test1/hello.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="请求响应">请求响应&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>2023/06/21 14:30:07 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:30:07 DEBUG : HTTP REQUEST &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x140009f2f00&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:30:07 DEBUG : GET /test1/hello.txt HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: uptime.minio.dev.173ops.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>User-Agent: rclone/v1.62.2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Encoding: gzip
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Authorization: XXXX
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Date: 20230621T063007Z
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:30:07 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:30:07 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:30:07 DEBUG : HTTP RESPONSE &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x140009f2f00&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:30:07 DEBUG : HTTP/1.1 &lt;span style="color:#0000cf;font-weight:bold">200&lt;/span> OK
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length: &lt;span style="color:#0000cf;font-weight:bold">7&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Ranges: bytes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Connection: keep-alive
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Security-Policy: block-all-mixed-content
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type: text/plain&lt;span style="color:#000;font-weight:bold">;&lt;/span> &lt;span style="color:#000">charset&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>utf-8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Date: Wed, &lt;span style="color:#0000cf;font-weight:bold">21&lt;/span> Jun &lt;span style="color:#0000cf;font-weight:bold">2023&lt;/span> 06:30:07 GMT
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Etag: &lt;span style="color:#4e9a06">&amp;#34;5e9820c5fde06ad204bc506739059ea5&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Last-Modified: Wed, &lt;span style="color:#0000cf;font-weight:bold">21&lt;/span> Jun &lt;span style="color:#0000cf;font-weight:bold">2023&lt;/span> 05:36:53 GMT
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Server: nginx/1.16.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Strict-Transport-Security: max-age&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>31536000&lt;span style="color:#000;font-weight:bold">;&lt;/span> includeSubDomains
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Origin
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Accept-Encoding
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Id-2: dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Meta-Mtime: &lt;span style="color:#0000cf;font-weight:bold">1687253796&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Request-Id: 176A98CACCF65700
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Content-Type-Options: nosniff
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Xss-Protection: 1&lt;span style="color:#000;font-weight:bold">;&lt;/span> &lt;span style="color:#000">mode&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>block
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ni hao
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:30:07 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs: 接口：HeadObject</title><link>https://opsaid.net/docs/data-storage/object-storage/head-object/</link><pubDate>Mon, 19 Jun 2023 11:00:32 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/head-object/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>查看文件 &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_HeadObject.html">官方文档&lt;/a>&lt;/p>
&lt;h2 id="接口解析">接口解析&lt;/h2>
&lt;h3 id="请求语法">请求语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>HEAD /&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>object_key&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>?partNumber&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>&lt;span style="color:#000">versionId&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: &lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>bucket&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>.&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>endpoint&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>If-Match: IfMatch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>If-Modified-Since: IfModifiedSince
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>If-None-Match: IfNoneMatch
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>If-Unmodified-Since: IfUnmodifiedSince
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Range: Range
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-algorithm: SSECustomerAlgorithm
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-key: SSECustomerKey
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-key-MD5: SSECustomerKeyMD5
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-payer: RequestPayer
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-expected-bucket-owner: ExpectedBucketOwner
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-mode: ChecksumMode
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="url-参数">URL 参数&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>类型&lt;/th>
&lt;th>是否必须&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;/table>
&lt;h3 id="请求结构">请求结构&lt;/h3>
&lt;p>无。&lt;/p>
&lt;h3 id="响应语法">响应语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>HTTP/1.1 200
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-delete-marker: DeleteMarker
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>accept-ranges: AcceptRanges
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-expiration: Expiration
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-restore: Restore
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-archive-status: ArchiveStatus
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Last-Modified: LastModified
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length: ContentLength
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-crc32: ChecksumCRC32
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-crc32c: ChecksumCRC32C
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-sha1: ChecksumSHA1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-sha256: ChecksumSHA256
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ETag: ETag
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-missing-meta: MissingMeta
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-version-id: VersionId
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Cache-Control: CacheControl
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Disposition: ContentDisposition
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Encoding: ContentEncoding
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Language: ContentLanguage
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type: ContentType
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Expires: Expires
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-website-redirect-location: WebsiteRedirectLocation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption: ServerSideEncryption
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-algorithm: SSECustomerAlgorithm
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-key-MD5: SSECustomerKeyMD5
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-aws-kms-key-id: SSEKMSKeyId
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-bucket-key-enabled: BucketKeyEnabled
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-storage-class: StorageClass
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-charged: RequestCharged
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-replication-status: ReplicationStatus
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-mp-parts-count: PartsCount
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-object-lock-mode: ObjectLockMode
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-object-lock-retain-until-date: ObjectLockRetainUntilDate
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-object-lock-legal-hold: ObjectLockLegalHoldStatus
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="响应参数">响应参数&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>类型&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;/table>
&lt;h2 id="请求示例">请求示例&lt;/h2>
&lt;p>通过 rclone 进行测试&lt;/p>
&lt;h3 id="测试指令">测试指令&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>./rclone &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --dump bodies &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --s3-force-path-style&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#204a87">false&lt;/span> &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> lsl &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> minio:uptime/test1/hello.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="请求响应">请求响应&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>2023/06/21 14:39:24 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:39:24 DEBUG : HTTP REQUEST &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x1400022d400&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:39:24 DEBUG : HEAD /test1/hello.txt HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: uptime.minio.dev.173ops.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>User-Agent: rclone/v1.62.2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Authorization: XXXX
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Date: 20230621T063924Z
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:39:24 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:39:24 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:39:24 DEBUG : HTTP RESPONSE &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x1400022d400&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:39:24 DEBUG : HTTP/1.1 &lt;span style="color:#0000cf;font-weight:bold">200&lt;/span> OK
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length: &lt;span style="color:#0000cf;font-weight:bold">7&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Ranges: bytes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Connection: keep-alive
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Security-Policy: block-all-mixed-content
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type: text/plain&lt;span style="color:#000;font-weight:bold">;&lt;/span> &lt;span style="color:#000">charset&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>utf-8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Date: Wed, &lt;span style="color:#0000cf;font-weight:bold">21&lt;/span> Jun &lt;span style="color:#0000cf;font-weight:bold">2023&lt;/span> 06:39:24 GMT
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Etag: &lt;span style="color:#4e9a06">&amp;#34;5e9820c5fde06ad204bc506739059ea5&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Last-Modified: Wed, &lt;span style="color:#0000cf;font-weight:bold">21&lt;/span> Jun &lt;span style="color:#0000cf;font-weight:bold">2023&lt;/span> 05:36:53 GMT
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Server: nginx/1.16.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Strict-Transport-Security: max-age&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>31536000&lt;span style="color:#000;font-weight:bold">;&lt;/span> includeSubDomains
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Origin
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Accept-Encoding
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Id-2: dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Meta-Mtime: &lt;span style="color:#0000cf;font-weight:bold">1687253796&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Request-Id: 176A994C989C0108
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Content-Type-Options: nosniff
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Xss-Protection: 1&lt;span style="color:#000;font-weight:bold">;&lt;/span> &lt;span style="color:#000">mode&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>block
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:39:24 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs: 接口：ListObjects</title><link>https://opsaid.net/docs/data-storage/object-storage/list-objects/</link><pubDate>Mon, 19 Jun 2023 11:00:32 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/list-objects/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>列出该用户已存储的文件列表，默认最大返回 1000 个文件 &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">官方文档&lt;/a>&lt;/p>
&lt;h2 id="接口解析">接口解析&lt;/h2>
&lt;h3 id="请求语法">请求语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>GET /?delimiter&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>encoding-type&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>&lt;span style="color:#000">marker&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>max-keys&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>&lt;span style="color:#000">prefix&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: &lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>bucket&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>.&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>endpoint&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-payer: RequestPayer
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-expected-bucket-owner: ExpectedBucketOwner
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="url-参数">URL 参数&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>类型&lt;/th>
&lt;th>是否必须&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>delimiter&lt;/td>
&lt;td>string&lt;/td>
&lt;td>否&lt;/td>
&lt;td>/&lt;/td>
&lt;td>分隔符是用于对键进行分组的字符&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>encoding-type&lt;/td>
&lt;td>string&lt;/td>
&lt;td>否&lt;/td>
&lt;td>url&lt;/td>
&lt;td>请求对响应中的密钥进行编码，并指定要使用的编码方法，仅支持: url&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>marker&lt;/td>
&lt;td>string&lt;/td>
&lt;td>否&lt;/td>
&lt;td>demo1&lt;/td>
&lt;td>标记希望 S3 开始列出的位置&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>max-keys&lt;/td>
&lt;td>int&lt;/td>
&lt;td>否&lt;/td>
&lt;td>1000&lt;/td>
&lt;td>最大返回文件数量，默认为 1000&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>prefix&lt;/td>
&lt;td>string&lt;/td>
&lt;td>否&lt;/td>
&lt;td>demo1&lt;/td>
&lt;td>仅过滤文件以此为前缀的列表&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="请求结构">请求结构&lt;/h3>
&lt;p>无。&lt;/p>
&lt;h3 id="响应语法">响应语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>HTTP/1.1 200
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-charged: RequestCharged
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">&amp;lt;ListBucketResult&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;IsTruncated&amp;gt;&lt;/span>boolean&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/IsTruncated&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Marker&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Marker&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;NextMarker&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/NextMarker&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Contents&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;ChecksumAlgorithm&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ChecksumAlgorithm&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;ETag&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ETag&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Key&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Key&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;LastModified&amp;gt;&lt;/span>timestamp&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/LastModified&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Owner&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;DisplayName&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/DisplayName&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;ID&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ID&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Owner&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Size&amp;gt;&lt;/span>integer&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Size&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;StorageClass&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/StorageClass&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Contents&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Name&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Name&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Prefix&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Prefix&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Delimiter&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Delimiter&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;MaxKeys&amp;gt;&lt;/span>integer&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/MaxKeys&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;CommonPrefixes&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Prefix&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Prefix&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;/CommonPrefixes&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;EncodingType&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/EncodingType&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ListBucketResult&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="响应参数">响应参数&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>类型&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Name&lt;/td>
&lt;td>string&lt;/td>
&lt;td>uptime&lt;/td>
&lt;td>桶名称&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Prefix&lt;/td>
&lt;td>string&lt;/td>
&lt;td>demo1/hello/test&lt;/td>
&lt;td>查询文件前缀&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Marker&lt;/td>
&lt;td>string&lt;/td>
&lt;td>demo1/hello/test111&lt;/td>
&lt;td>指示存储桶列表中的开始位置&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>NextMarker&lt;/td>
&lt;td>string&lt;/td>
&lt;td>demo1/hello/test999&lt;/td>
&lt;td>响应被截断时，使用该字段作为后续标记&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>MaxKeys&lt;/td>
&lt;td>int&lt;/td>
&lt;td>1000&lt;/td>
&lt;td>响应体返回的最多文件数&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Delimiter&lt;/td>
&lt;td>string&lt;/td>
&lt;td>/&lt;/td>
&lt;td>分隔符是用于对键进行分组的字符&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>IsTruncated&lt;/td>
&lt;td>bool&lt;/td>
&lt;td>false&lt;/td>
&lt;td>响应是否被截断，也就是超过 MaxKeys 数量&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Contents&lt;/td>
&lt;td>[]Object&lt;/td>
&lt;td>-&lt;/td>
&lt;td>文件对象列表&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CommonPrefixes&lt;/td>
&lt;td>[]CommonPrefixes&lt;/td>
&lt;td>-&lt;/td>
&lt;td>文件对象公共前缀&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>EncodingType&lt;/td>
&lt;td>string&lt;/td>
&lt;td>url&lt;/td>
&lt;td>对响应中的对象键进行编码的编码类型&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="请求示例">请求示例&lt;/h2>
&lt;p>通过 rclone 进行测试&lt;/p>
&lt;h3 id="测试指令">测试指令&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>./rclone &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --dump bodies &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --s3-force-path-style&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#204a87">false&lt;/span> &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> lsl &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> minio:uptime/test/data
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>在使用 rclone 时，需注意配置 &lt;code>list_version = 1&lt;/code> 使用版本 ListObject 进行文件列表。&lt;/p>
&lt;h3 id="请求响应">请求响应&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>2023/06/21 14:50:30 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:50:30 DEBUG : HTTP REQUEST &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x14000921d00&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:50:30 DEBUG : GET /?delimiter&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>encoding-type&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>url&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>max-keys&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>1000&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>&lt;span style="color:#000">prefix&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>test%2Fdata%2F HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: uptime.minio.dev.173ops.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>User-Agent: rclone/v1.62.2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Authorization: XXXX
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Date: 20230621T065030Z
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Encoding: gzip
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:50:30 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:50:30 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:50:30 DEBUG : HTTP RESPONSE &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x14000921d00&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:50:30 DEBUG : HTTP/1.1 &lt;span style="color:#0000cf;font-weight:bold">200&lt;/span> OK
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length: &lt;span style="color:#0000cf;font-weight:bold">966&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Ranges: bytes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Connection: keep-alive
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Security-Policy: block-all-mixed-content
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type: application/xml
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Date: Wed, &lt;span style="color:#0000cf;font-weight:bold">21&lt;/span> Jun &lt;span style="color:#0000cf;font-weight:bold">2023&lt;/span> 06:50:30 GMT
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Server: nginx/1.16.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Strict-Transport-Security: max-age&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>31536000&lt;span style="color:#000;font-weight:bold">;&lt;/span> includeSubDomains
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Origin
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Accept-Encoding
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Id-2: dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Request-Id: 176A99E7AD2B0970
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Content-Type-Options: nosniff
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Xss-Protection: 1&lt;span style="color:#000;font-weight:bold">;&lt;/span> &lt;span style="color:#000">mode&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>block
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;?xml &lt;span style="color:#000">version&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;1.0&amp;#34;&lt;/span> &lt;span style="color:#000">encoding&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;UTF-8&amp;#34;&lt;/span>?&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;ListBucketResult
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">xmlns&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;http://s3.amazonaws.com/doc/2006-03-01/&amp;#34;&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Name&amp;gt;uptime&amp;lt;/Name&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Prefix&amp;gt;test/data/&amp;lt;/Prefix&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Marker&amp;gt;&amp;lt;/Marker&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;MaxKeys&amp;gt;1000&amp;lt;/MaxKeys&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;IsTruncated&amp;gt;false&amp;lt;/IsTruncated&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Contents&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Key&amp;gt;test/data/component/21/226781.html&amp;lt;/Key&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;LastModified&amp;gt;2023-06-21T05:36:53.650Z&amp;lt;/LastModified&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;ETag&amp;gt;&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>&lt;span style="color:#8f5902;font-style:italic">#34;c658d7f8c4ce1302f0a4903f10a5b5dc&amp;amp;#34;&amp;lt;/ETag&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Size&amp;gt;40&amp;lt;/Size&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Owner&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;ID&amp;gt;02d6176db174dc93cb1b899f7c6078f08654445fe8cf1b6ce98d8855f66bdbf4&amp;lt;/ID&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;DisplayName&amp;gt;minio&amp;lt;/DisplayName&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/Owner&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;StorageClass&amp;gt;STANDARD&amp;lt;/StorageClass&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/Contents&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Contents&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Key&amp;gt;test/data/component/29/226781.html&amp;lt;/Key&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;LastModified&amp;gt;2023-06-21T05:36:53.656Z&amp;lt;/LastModified&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;ETag&amp;gt;&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>&lt;span style="color:#8f5902;font-style:italic">#34;6ea091a913376dea9f889a611eb74bd0&amp;amp;#34;&amp;lt;/ETag&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Size&amp;gt;40&amp;lt;/Size&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Owner&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;ID&amp;gt;02d6176db174dc93cb1b899f7c6078f08654445fe8cf1b6ce98d8855f66bdbf4&amp;lt;/ID&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;DisplayName&amp;gt;minio&amp;lt;/DisplayName&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/Owner&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;StorageClass&amp;gt;STANDARD&amp;lt;/StorageClass&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/Contents&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;EncodingType&amp;gt;url&amp;lt;/EncodingType&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;/ListBucketResult&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:50:30 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs: 接口：ListObjectsV2</title><link>https://opsaid.net/docs/data-storage/object-storage/list-objects-v2/</link><pubDate>Mon, 19 Jun 2023 11:00:32 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/list-objects-v2/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>列出该用户已存储的文件列表，默认最大返回 1000 个文件 &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjects.html">官方文档&lt;/a>&lt;/p>
&lt;h2 id="接口解析">接口解析&lt;/h2>
&lt;h3 id="请求语法">请求语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>GET /?list-type&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>2&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>continuation-token&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>&lt;span style="color:#000">delimiter&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>encoding-type&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>fetch-owner&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>max-keys&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>&lt;span style="color:#000">prefix&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>start-after&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span> HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: &lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>bucket&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>.&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>endpoint&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-payer: RequestPayer
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-expected-bucket-owner: ExpectedBucketOwner
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="url-参数">URL 参数&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>类型&lt;/th>
&lt;th>是否必须&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>continuation-token&lt;/td>
&lt;td>string&lt;/td>
&lt;td>否&lt;/td>
&lt;td>-&lt;/td>
&lt;td>指示 S3 列表正在使用令牌在此存储桶上继续&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>delimiter&lt;/td>
&lt;td>string&lt;/td>
&lt;td>否&lt;/td>
&lt;td>/&lt;/td>
&lt;td>分隔符是用于对键进行分组的字符&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>encoding-type&lt;/td>
&lt;td>string&lt;/td>
&lt;td>否&lt;/td>
&lt;td>url&lt;/td>
&lt;td>请求对响应中的密钥进行编码，并指定要使用的编码方法，仅支持: url&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>fetch-owner&lt;/td>
&lt;td>string&lt;/td>
&lt;td>否&lt;/td>
&lt;td>默认情况下，Owner 字段不存在&lt;/td>
&lt;td>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>max-keys&lt;/td>
&lt;td>int&lt;/td>
&lt;td>否&lt;/td>
&lt;td>1000&lt;/td>
&lt;td>最大返回文件数量，默认为 1000&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>prefix&lt;/td>
&lt;td>string&lt;/td>
&lt;td>否&lt;/td>
&lt;td>demo1&lt;/td>
&lt;td>仅过滤文件以此为前缀的列表&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>start-after&lt;/td>
&lt;td>string&lt;/td>
&lt;td>否&lt;/td>
&lt;td>demo1&lt;/td>
&lt;td>标记希望 S3 开始列出的位置&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h3 id="请求结构">请求结构&lt;/h3>
&lt;p>无。&lt;/p>
&lt;h3 id="响应语法">响应语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>HTTP/1.1 200
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-charged: RequestCharged
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#8f5902;font-style:italic">&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">&amp;lt;ListBucketResult&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;IsTruncated&amp;gt;&lt;/span>boolean&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/IsTruncated&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Contents&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;ChecksumAlgorithm&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ChecksumAlgorithm&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;ETag&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ETag&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Key&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Key&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;LastModified&amp;gt;&lt;/span>timestamp&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/LastModified&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Owner&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;DisplayName&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/DisplayName&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;ID&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ID&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Owner&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Size&amp;gt;&lt;/span>integer&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Size&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;StorageClass&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/StorageClass&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Contents&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Name&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Name&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Prefix&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Prefix&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Delimiter&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Delimiter&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;MaxKeys&amp;gt;&lt;/span>integer&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/MaxKeys&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;CommonPrefixes&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;Prefix&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/Prefix&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;/CommonPrefixes&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> ...
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;EncodingType&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/EncodingType&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;KeyCount&amp;gt;&lt;/span>integer&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/KeyCount&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;ContinuationToken&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ContinuationToken&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;NextContinuationToken&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/NextContinuationToken&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#204a87;font-weight:bold">&amp;lt;StartAfter&amp;gt;&lt;/span>string&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/StartAfter&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87;font-weight:bold">&amp;lt;/ListBucketResult&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="响应参数">响应参数&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>类型&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>Name&lt;/td>
&lt;td>string&lt;/td>
&lt;td>uptime&lt;/td>
&lt;td>桶名称&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Prefix&lt;/td>
&lt;td>string&lt;/td>
&lt;td>demo1/hello/test&lt;/td>
&lt;td>查询文件前缀&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>StartAfter&lt;/td>
&lt;td>string&lt;/td>
&lt;td>demo1/hello/test111&lt;/td>
&lt;td>指示存储桶列表中的开始位置&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>ContinuationToken&lt;/td>
&lt;td>string&lt;/td>
&lt;td>TODO;&lt;/td>
&lt;td>TODO;&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>NextContinuationToken&lt;/td>
&lt;td>string&lt;/td>
&lt;td>TODO;&lt;/td>
&lt;td>TODO;&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>KeyCount&lt;/td>
&lt;td>int&lt;/td>
&lt;td>3&lt;/td>
&lt;td>响应体返回的文件数&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>MaxKeys&lt;/td>
&lt;td>int&lt;/td>
&lt;td>1000&lt;/td>
&lt;td>响应体返回的最多文件数&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Delimiter&lt;/td>
&lt;td>string&lt;/td>
&lt;td>/&lt;/td>
&lt;td>分隔符是用于对键进行分组的字符&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>IsTruncated&lt;/td>
&lt;td>bool&lt;/td>
&lt;td>false&lt;/td>
&lt;td>响应是否被截断，也就是超过 MaxKeys 数量&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>Contents&lt;/td>
&lt;td>[]Object&lt;/td>
&lt;td>-&lt;/td>
&lt;td>文件对象列表&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>CommonPrefixes&lt;/td>
&lt;td>[]CommonPrefixes&lt;/td>
&lt;td>-&lt;/td>
&lt;td>文件对象公共前缀&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>EncodingType&lt;/td>
&lt;td>string&lt;/td>
&lt;td>url&lt;/td>
&lt;td>对响应中的对象键进行编码的编码类型&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;h2 id="请求示例">请求示例&lt;/h2>
&lt;p>通过 rclone 进行测试&lt;/p>
&lt;h3 id="测试指令">测试指令&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>./rclone &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --dump bodies &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --s3-force-path-style&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#204a87">false&lt;/span> &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> lsl &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> minio:uptime/test/data
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>在使用 rclone 时，需注意配置 &lt;code>list_version = 2&lt;/code> 使用版本 ListObjectV2 进行文件列表。&lt;/p>
&lt;h3 id="请求响应">请求响应&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>2023/06/21 14:53:46 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:53:46 DEBUG : HTTP REQUEST &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x14000b2a500&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:53:46 DEBUG : GET /?delimiter&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>encoding-type&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>url&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>list-type&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>2&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>max-keys&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>1000&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>&lt;span style="color:#000">prefix&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>test%2Fdata%2F HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: uptime.minio.dev.173ops.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>User-Agent: rclone/v1.62.2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Authorization: XXXX
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Date: 20230621T065346Z
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Encoding: gzip
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:53:46 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:53:46 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:53:46 DEBUG : HTTP RESPONSE &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x14000b2a500&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:53:46 DEBUG : HTTP/1.1 &lt;span style="color:#0000cf;font-weight:bold">200&lt;/span> OK
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length: &lt;span style="color:#0000cf;font-weight:bold">731&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Ranges: bytes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Connection: keep-alive
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Security-Policy: block-all-mixed-content
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type: application/xml
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Date: Wed, &lt;span style="color:#0000cf;font-weight:bold">21&lt;/span> Jun &lt;span style="color:#0000cf;font-weight:bold">2023&lt;/span> 06:53:46 GMT
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Server: nginx/1.16.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Strict-Transport-Security: max-age&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>31536000&lt;span style="color:#000;font-weight:bold">;&lt;/span> includeSubDomains
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Origin
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Accept-Encoding
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Id-2: dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Request-Id: 176A9A154228D110
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Content-Type-Options: nosniff
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Xss-Protection: 1&lt;span style="color:#000;font-weight:bold">;&lt;/span> &lt;span style="color:#000">mode&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>block
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;?xml &lt;span style="color:#000">version&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;1.0&amp;#34;&lt;/span> &lt;span style="color:#000">encoding&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;UTF-8&amp;#34;&lt;/span>?&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;ListBucketResult
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &lt;span style="color:#000">xmlns&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#4e9a06">&amp;#34;http://s3.amazonaws.com/doc/2006-03-01/&amp;#34;&lt;/span>&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Name&amp;gt;uptime&amp;lt;/Name&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Prefix&amp;gt;test/data/&amp;lt;/Prefix&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;KeyCount&amp;gt;2&amp;lt;/KeyCount&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;MaxKeys&amp;gt;1000&amp;lt;/MaxKeys&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;IsTruncated&amp;gt;false&amp;lt;/IsTruncated&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Contents&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Key&amp;gt;test/data/component/21/226781.html&amp;lt;/Key&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;LastModified&amp;gt;2023-06-21T05:36:53.650Z&amp;lt;/LastModified&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;ETag&amp;gt;&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>&lt;span style="color:#8f5902;font-style:italic">#34;c658d7f8c4ce1302f0a4903f10a5b5dc&amp;amp;#34;&amp;lt;/ETag&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Size&amp;gt;40&amp;lt;/Size&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;StorageClass&amp;gt;STANDARD&amp;lt;/StorageClass&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/Contents&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Contents&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Key&amp;gt;test/data/component/29/226781.html&amp;lt;/Key&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;LastModified&amp;gt;2023-06-21T05:36:53.656Z&amp;lt;/LastModified&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;ETag&amp;gt;&lt;span style="color:#000;font-weight:bold">&amp;amp;&lt;/span>&lt;span style="color:#8f5902;font-style:italic">#34;6ea091a913376dea9f889a611eb74bd0&amp;amp;#34;&amp;lt;/ETag&amp;gt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;Size&amp;gt;40&amp;lt;/Size&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;StorageClass&amp;gt;STANDARD&amp;lt;/StorageClass&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;/Contents&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span> &amp;lt;EncodingType&amp;gt;url&amp;lt;/EncodingType&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&amp;lt;/ListBucketResult&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 14:53:46 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs: 接口：PUTObject</title><link>https://opsaid.net/docs/data-storage/object-storage/put-object/</link><pubDate>Mon, 19 Jun 2023 11:00:32 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/put-object/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>上传文件 &lt;a href="https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html">官方文档&lt;/a>&lt;/p>
&lt;h2 id="接口解析">接口解析&lt;/h2>
&lt;h3 id="请求语法">请求语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>PUT /&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>object_key&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span> HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: &lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>bucket&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>.&lt;span style="color:#ce5c00;font-weight:bold">{&lt;/span>endpoint&lt;span style="color:#ce5c00;font-weight:bold">}&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-acl: ACL
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Cache-Control: CacheControl
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Disposition: ContentDisposition
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Encoding: ContentEncoding
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Language: ContentLanguage
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length: ContentLength
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-MD5: ContentMD5
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type: ContentType
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-sdk-checksum-algorithm: ChecksumAlgorithm
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-crc32: ChecksumCRC32
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-crc32c: ChecksumCRC32C
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-sha1: ChecksumSHA1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-sha256: ChecksumSHA256
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Expires: Expires
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-grant-full-control: GrantFullControl
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-grant-read: GrantRead
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-grant-read-acp: GrantReadACP
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-grant-write-acp: GrantWriteACP
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption: ServerSideEncryption
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-storage-class: StorageClass
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-website-redirect-location: WebsiteRedirectLocation
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-algorithm: SSECustomerAlgorithm
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-key: SSECustomerKey
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-key-MD5: SSECustomerKeyMD5
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-aws-kms-key-id: SSEKMSKeyId
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-context: SSEKMSEncryptionContext
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-bucket-key-enabled: BucketKeyEnabled
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-payer: RequestPayer
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-tagging: Tagging
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-object-lock-mode: ObjectLockMode
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-object-lock-retain-until-date: ObjectLockRetainUntilDate
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-object-lock-legal-hold: ObjectLockLegalHoldStatus
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-expected-bucket-owner: ExpectedBucketOwner
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Body
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="url-参数">URL 参数&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>类型&lt;/th>
&lt;th>是否必须&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;/table>
&lt;h3 id="请求结构">请求结构&lt;/h3>
&lt;p>文件二进制内容&lt;/p>
&lt;h3 id="响应语法">响应语法&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-xml" data-lang="xml">&lt;span style="display:flex;">&lt;span>HTTP/1.1 200
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-expiration: Expiration
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>ETag: ETag
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-crc32: ChecksumCRC32
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-crc32c: ChecksumCRC32C
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-sha1: ChecksumSHA1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-checksum-sha256: ChecksumSHA256
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption: ServerSideEncryption
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-version-id: VersionId
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-algorithm: SSECustomerAlgorithm
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-customer-key-MD5: SSECustomerKeyMD5
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-aws-kms-key-id: SSEKMSKeyId
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-context: SSEKMSEncryptionContext
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-server-side-encryption-bucket-key-enabled: BucketKeyEnabled
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>x-amz-request-charged: RequestCharged
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="响应参数">响应参数&lt;/h3>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>名称&lt;/th>
&lt;th>类型&lt;/th>
&lt;th>示例&lt;/th>
&lt;th>说明&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;/table>
&lt;h2 id="请求示例">请求示例&lt;/h2>
&lt;p>通过 rclone 进行测试&lt;/p>
&lt;h3 id="测试指令">测试指令&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87">echo&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;hello world&amp;#34;&lt;/span> &lt;span style="color:#000;font-weight:bold">|&lt;/span> ./rclone &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --dump bodies &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> --s3-force-path-style&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#204a87">false&lt;/span> &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> rcat &lt;span style="color:#4e9a06">\
&lt;/span>&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#4e9a06">&lt;/span> minio:uptime/from/local/hello.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="请求响应">请求响应&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>2023/06/21 15:09:12 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 15:09:12 DEBUG : HTTP REQUEST &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x140001ca200&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 15:09:12 DEBUG : PUT /from/local/hello.txt HTTP/1.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Host: uptime.minio.dev.173ops.com
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>User-Agent: rclone/v1.62.2
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length: &lt;span style="color:#0000cf;font-weight:bold">12&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Authorization: XXXX
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Md5: &lt;span style="color:#000">b1kCrCNwJL3QwXbLkwY9xA&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">==&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Type: text/plain&lt;span style="color:#000;font-weight:bold">;&lt;/span> &lt;span style="color:#000">charset&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>utf-8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Acl: default
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Content-Sha256: UNSIGNED-PAYLOAD
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Date: 20230621T070912Z
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Meta-Mtime: 1687331352.229462
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Encoding: gzip
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>hello world
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 15:09:12 DEBUG : &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 15:09:12 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 15:09:12 DEBUG : HTTP RESPONSE &lt;span style="color:#ce5c00;font-weight:bold">(&lt;/span>req 0x140001ca200&lt;span style="color:#ce5c00;font-weight:bold">)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 15:09:12 DEBUG : HTTP/1.1 &lt;span style="color:#0000cf;font-weight:bold">200&lt;/span> OK
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Length: &lt;span style="color:#0000cf;font-weight:bold">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Accept-Ranges: bytes
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Connection: keep-alive
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Content-Security-Policy: block-all-mixed-content
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Date: Wed, &lt;span style="color:#0000cf;font-weight:bold">21&lt;/span> Jun &lt;span style="color:#0000cf;font-weight:bold">2023&lt;/span> 07:09:12 GMT
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Etag: &lt;span style="color:#4e9a06">&amp;#34;6f5902ac237024bdd0c176cb93063dc4&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Server: nginx/1.16.1
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Strict-Transport-Security: max-age&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>31536000&lt;span style="color:#000;font-weight:bold">;&lt;/span> includeSubDomains
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Origin
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>Vary: Accept-Encoding
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Id-2: dd9025bab4ad464b049177c95eb6ebf374d3b3fd1af9251148b658df7ac2e3e8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Amz-Request-Id: 176A9AECCE4AA1C8
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Content-Type-Options: nosniff
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>X-Xss-Protection: 1&lt;span style="color:#000;font-weight:bold">;&lt;/span> &lt;span style="color:#000">mode&lt;/span>&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>block
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>2023/06/21 15:09:12 DEBUG : &lt;span style="color:#ce5c00;font-weight:bold">&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div></description></item><item><title>Docs: 工具：Rclone</title><link>https://opsaid.net/docs/data-storage/object-storage/rclone/</link><pubDate>Mon, 12 Jun 2023 22:59:27 +0800</pubDate><guid>https://opsaid.net/docs/data-storage/object-storage/rclone/</guid><description>
&lt;h2 id="简要概述">简要概述&lt;/h2>
&lt;p>用于对象存储的同步&lt;/p>
&lt;h2 id="使用参数">使用参数&lt;/h2>
&lt;p>TODO;&lt;/p>
&lt;h2 id="使用场景">使用场景&lt;/h2>
&lt;h3 id="创建文件">创建文件&lt;/h3>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-shell" data-lang="shell">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#204a87">echo&lt;/span> &lt;span style="color:#4e9a06">&amp;#34;hello world&amp;#34;&lt;/span> &lt;span style="color:#000;font-weight:bold">|&lt;/span> ./rclone --dump bodies --s3-force-path-style&lt;span style="color:#ce5c00;font-weight:bold">=&lt;/span>&lt;span style="color:#204a87">false&lt;/span> rcat syncds:uptime/from/local/hello.txt
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>往存储桶 &amp;ldquo;uptime&amp;rdquo; 中创建对象文件名 &amp;ldquo;from/local/hello.txt&amp;rdquo;，内容为 &amp;ldquo;hello world&amp;rdquo;。&lt;/p></description></item></channel></rss>