You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by gi...@apache.org on 2023/03/21 14:16:05 UTC

[incubator-opendal] branch gh-pages updated: deploy: d5c71313339f745c978e48329be91d74d03895eb

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git


The following commit(s) were added to refs/heads/gh-pages by this push:
     new 1955ad93 deploy: d5c71313339f745c978e48329be91d74d03895eb
1955ad93 is described below

commit 1955ad93906c52f66784fe08fe55b4c646d687ca
Author: Xuanwo <Xu...@users.noreply.github.com>
AuthorDate: Tue Mar 21 14:16:00 2023 +0000

    deploy: d5c71313339f745c978e48329be91d74d03895eb
---
 404.html                                           |  4 +--
 .../{1db64337.af7e0407.js => 1db64337.cdc0d87d.js} |  2 +-
 ...e~main.5501b4fd.js => runtime~main.2b1f0508.js} |  2 +-
 blog/archive/index.html                            |  4 +--
 blog/index.html                                    |  4 +--
 blog/opendal-entered-apache-incubator/index.html   |  4 +--
 blog/tags/announcement/index.html                  |  4 +--
 blog/tags/index.html                               |  4 +--
 docs/nodejs/classes/BlockingLister.html            |  4 +--
 docs/nodejs/classes/Entry.html                     |  4 +--
 docs/nodejs/classes/Lister.html                    |  4 +--
 docs/nodejs/classes/Metadata.html                  | 18 ++++++------
 docs/nodejs/classes/Operator.html                  | 32 +++++++++++-----------
 docs/overview/index.html                           |  6 ++--
 docs/python/opendal.html                           | 30 ++++++++++----------
 docs/python/search.js                              |  2 +-
 docs/rust/implementors/core/convert/trait.From.js  |  2 +-
 .../implementors/serde/de/trait.Deserialize.js     |  2 +-
 .../rust/implementors/serde/ser/trait.Serialize.js |  2 +-
 docs/rust/opendal/raw/enum.AsyncBody.html          |  2 +-
 .../opendal/raw/fn.new_request_sign_error.html     |  2 +-
 .../rust/opendal/raw/struct.BytesContentRange.html |  6 ++--
 docs/rust/opendal/raw/struct.HttpClient.html       |  4 +--
 docs/rust/opendal/struct.Error.html                |  2 +-
 docs/rust/opendal/struct.Reader.html               | 14 +++++-----
 index.html                                         |  4 +--
 26 files changed, 84 insertions(+), 84 deletions(-)

diff --git a/404.html b/404.html
index 9fe48272..ac7de070 100644
--- a/404.html
+++ b/404.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <title data-rh="true">Page Not Found | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/404.html"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.5501b4fd.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.2b1f0508.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.5501b4fd.js"></script>
+<script src="/assets/js/runtime~main.2b1f0508.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/js/1db64337.af7e0407.js b/assets/js/1db64337.cdc0d87d.js
similarity index 61%
rename from assets/js/1db64337.af7e0407.js
rename to assets/js/1db64337.cdc0d87d.js
index 20b1cf13..6c2d14ae 100644
--- a/assets/js/1db64337.af7e0407.js
+++ b/assets/js/1db64337.cdc0d87d.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[372],{6777:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>n,contentTitle:()=>s,default:()=>l,frontMatter:()=>a,metadata:()=>d,toc:()=>v});var o=i(7462),r=(i(7294),i(3905));const a={sidebar_position:1,title:"Overview"},s=void 0,d={unversionedId:"overview",id:"overview",title:"Overview",description:"",source:"@site/docs/overview.md",sourceDirName:".",slug:"/overview",permalink:"/docs/overview",draft:!1,editUrl: [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[372],{6777:(e,t,i)=>{i.r(t),i.d(t,{assets:()=>n,contentTitle:()=>s,default:()=>l,frontMatter:()=>a,metadata:()=>d,toc:()=>v});var o=i(7462),r=(i(7294),i(3905));const a={sidebar_position:1,title:"Overview"},s=void 0,d={unversionedId:"overview",id:"overview",title:"Overview",description:"",source:"@site/docs/overview.md",sourceDirName:".",slug:"/overview",permalink:"/docs/overview",draft:!1,editUrl: [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.5501b4fd.js b/assets/js/runtime~main.2b1f0508.js
similarity index 97%
rename from assets/js/runtime~main.5501b4fd.js
rename to assets/js/runtime~main.2b1f0508.js
index 56d74058..835c69b6 100644
--- a/assets/js/runtime~main.5501b4fd.js
+++ b/assets/js/runtime~main.2b1f0508.js
@@ -1 +1 @@
-(()=>{"use strict";var e,t,r,o,a,n={},f={};function c(e){var t=f[e];if(void 0!==t)return t.exports;var r=f[e]={exports:{}};return n[e].call(r.exports,r,r.exports,c),r.exports}c.m=n,e=[],c.O=(t,r,o,a)=>{if(!r){var n=1/0;for(b=0;b<e.length;b++){r=e[b][0],o=e[b][1],a=e[b][2];for(var f=!0,i=0;i<r.length;i++)(!1&a||n>=a)&&Object.keys(c.O).every((e=>c.O[e](r[i])))?r.splice(i--,1):(f=!1,a<n&&(n=a));if(f){e.splice(b--,1);var d=o();void 0!==d&&(t=d)}}return t}a=a||0;for(var b=e.length;b>0&&e[b-1] [...]
\ No newline at end of file
+(()=>{"use strict";var e,t,r,o,a,n={},f={};function c(e){var t=f[e];if(void 0!==t)return t.exports;var r=f[e]={exports:{}};return n[e].call(r.exports,r,r.exports,c),r.exports}c.m=n,e=[],c.O=(t,r,o,a)=>{if(!r){var n=1/0;for(b=0;b<e.length;b++){r=e[b][0],o=e[b][1],a=e[b][2];for(var f=!0,i=0;i<r.length;i++)(!1&a||n>=a)&&Object.keys(c.O).every((e=>c.O[e](r[i])))?r.splice(i--,1):(f=!1,a<n&&(n=a));if(f){e.splice(b--,1);var d=o();void 0!==d&&(t=d)}}return t}a=a||0;for(var b=e.length;b>0&&e[b-1] [...]
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
index 11c541b7..1f686d61 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <title data-rh="true">Archive | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/archive"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="t [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.5501b4fd.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.2b1f0508.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.5501b4fd.js"></script>
+<script src="/assets/js/runtime~main.2b1f0508.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index 117744fc..591dc389 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <title data-rh="true">Blog | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property="og:title" content="Blog | Apache OpenDAL"><meta data-rh=" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.5501b4fd.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.2b1f0508.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.5501b4fd.js"></script>
+<script src="/assets/js/runtime~main.2b1f0508.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/opendal-entered-apache-incubator/index.html b/blog/opendal-entered-apache-incubator/index.html
index 523f19bf..30a75fd7 100644
--- a/blog/opendal-entered-apache-incubator/index.html
+++ b/blog/opendal-entered-apache-incubator/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <title data-rh="true">Way to Go: OpenDAL successfully entered Apache Incubator | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/opendal-entered-apache-incubator"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><m [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.5501b4fd.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.2b1f0508.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.5501b4fd.js"></script>
+<script src="/assets/js/runtime~main.2b1f0508.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/announcement/index.html b/blog/tags/announcement/index.html
index 23e0e7a2..8e02e246 100644
--- a/blog/tags/announcement/index.html
+++ b/blog/tags/announcement/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <title data-rh="true">One post tagged with &quot;announcement&quot; | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags/announcement"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.5501b4fd.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.2b1f0508.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.5501b4fd.js"></script>
+<script src="/assets/js/runtime~main.2b1f0508.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/index.html b/blog/tags/index.html
index 5c6c91f6..5752cc6c 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <title data-rh="true">Tags | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property="og:title" content="Tags | Apache OpenDAL"><meta data [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.5501b4fd.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.2b1f0508.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.5501b4fd.js"></script>
+<script src="/assets/js/runtime~main.2b1f0508.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/nodejs/classes/BlockingLister.html b/docs/nodejs/classes/BlockingLister.html
index 6725b3b9..8ba194b3 100644
--- a/docs/nodejs/classes/BlockingLister.html
+++ b/docs/nodejs/classes/BlockingLister.html
@@ -20,7 +20,7 @@
 <ul class="tsd-hierarchy">
 <li><span class="target">BlockingLister</span></li></ul></section><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L101">index.d.ts:101</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L101">index.d.ts:101</a></li></ul></aside>
 <section class="tsd-panel-group tsd-index-group">
 <section class="tsd-panel tsd-index-panel">
 <details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
@@ -51,7 +51,7 @@
 <li class="tsd-description">
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="Entry.html" class="tsd-signature-type" data-tsd-kind="Class">Entry</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L102">index.d.ts:102</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L102">index.d.ts:102</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/nodejs/classes/Entry.html b/docs/nodejs/classes/Entry.html
index 5773c05c..f70019ac 100644
--- a/docs/nodejs/classes/Entry.html
+++ b/docs/nodejs/classes/Entry.html
@@ -20,7 +20,7 @@
 <ul class="tsd-hierarchy">
 <li><span class="target">Entry</span></li></ul></section><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L68">index.d.ts:68</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L68">index.d.ts:68</a></li></ul></aside>
 <section class="tsd-panel-group tsd-index-group">
 <section class="tsd-panel tsd-index-panel">
 <details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
@@ -53,7 +53,7 @@
 </div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L70">index.d.ts:70</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L70">index.d.ts:70</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/nodejs/classes/Lister.html b/docs/nodejs/classes/Lister.html
index 9d17f919..5fa47b46 100644
--- a/docs/nodejs/classes/Lister.html
+++ b/docs/nodejs/classes/Lister.html
@@ -20,7 +20,7 @@
 <ul class="tsd-hierarchy">
 <li><span class="target">Lister</span></li></ul></section><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L90">index.d.ts:90</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L90">index.d.ts:90</a></li></ul></aside>
 <section class="tsd-panel-group tsd-index-group">
 <section class="tsd-panel tsd-index-panel">
 <details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
@@ -61,7 +61,7 @@ thing internally.</p>
 </div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="Entry.html" class="tsd-signature-type" data-tsd-kind="Class">Entry</a><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L99">index.d.ts:99</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L99">index.d.ts:99</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/nodejs/classes/Metadata.html b/docs/nodejs/classes/Metadata.html
index 226e2097..86961726 100644
--- a/docs/nodejs/classes/Metadata.html
+++ b/docs/nodejs/classes/Metadata.html
@@ -20,7 +20,7 @@
 <ul class="tsd-hierarchy">
 <li><span class="target">Metadata</span></li></ul></section><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L72">index.d.ts:72</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L72">index.d.ts:72</a></li></ul></aside>
 <section class="tsd-panel-group tsd-index-group">
 <section class="tsd-panel tsd-index-panel">
 <details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
@@ -63,7 +63,7 @@
 </div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L78">index.d.ts:78</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L78">index.d.ts:78</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="contentLength" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>content<wbr/>Length</span><a href="#contentLength" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-accessor tsd-parent-kind-class">
@@ -73,7 +73,7 @@
 </div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L80">index.d.ts:80</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L80">index.d.ts:80</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="contentMd5" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>content<wbr/>Md5</span><a href="#contentMd5" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-accessor tsd-parent-kind-class">
@@ -83,7 +83,7 @@
 </div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L82">index.d.ts:82</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L82">index.d.ts:82</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="contentType" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>content<wbr/>Type</span><a href="#contentType" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-accessor tsd-parent-kind-class">
@@ -93,7 +93,7 @@
 </div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L84">index.d.ts:84</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L84">index.d.ts:84</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="etag" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>etag</span><a href="#etag" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-accessor tsd-parent-kind-class">
@@ -103,7 +103,7 @@
 </div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L86">index.d.ts:86</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L86">index.d.ts:86</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-accessor tsd-parent-kind-class"><a id="lastModified" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>last<wbr/>Modified</span><a href="#lastModified" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-accessor tsd-parent-kind-class">
@@ -113,7 +113,7 @@
 </div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L88">index.d.ts:88</a></li></ul></aside></li></ul></section></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L88">index.d.ts:88</a></li></ul></aside></li></ul></section></section>
 <section class="tsd-panel-group tsd-member-group">
 <h2>Methods</h2>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="isDirectory" class="tsd-anchor"></a>
@@ -125,7 +125,7 @@
 </div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L74">index.d.ts:74</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L74">index.d.ts:74</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="isFile" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>is<wbr/>File</span><a href="#isFile" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -135,7 +135,7 @@
 </div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L76">index.d.ts:76</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L76">index.d.ts:76</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/nodejs/classes/Operator.html b/docs/nodejs/classes/Operator.html
index aae5cb45..23e5e681 100644
--- a/docs/nodejs/classes/Operator.html
+++ b/docs/nodejs/classes/Operator.html
@@ -20,7 +20,7 @@
 <ul class="tsd-hierarchy">
 <li><span class="target">Operator</span></li></ul></section><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L25">index.d.ts:25</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L25">index.d.ts:25</a></li></ul></aside>
 <section class="tsd-panel-group tsd-index-group">
 <section class="tsd-panel tsd-index-panel">
 <details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
@@ -63,7 +63,7 @@
 <h5><code class="tsd-tag ts-flagOptional">Optional</code> options: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Record</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="Operator.html" class="tsd-signature-type" data-tsd-kind="Class">Operator</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L26">index.d.ts:26</a></li></ul></aside></li></ul></section></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L26">index.d.ts:26</a></li></ul></aside></li></ul></section></section>
 <section class="tsd-panel-group tsd-member-group">
 <h2>Methods</h2>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="createDir" class="tsd-anchor"></a>
@@ -80,7 +80,7 @@
 <h5>path: <span class="tsd-signature-type">string</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L32">index.d.ts:32</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L32">index.d.ts:32</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="createDirSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>create<wbr/>Dir<wbr/>Sync</span><a href="#createDirSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -95,7 +95,7 @@
 <h5>path: <span class="tsd-signature-type">string</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L34">index.d.ts:34</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L34">index.d.ts:34</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="delete" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>delete</span><a href="#delete" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -110,7 +110,7 @@
 <h5>path: <span class="tsd-signature-type">string</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L48">index.d.ts:48</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L48">index.d.ts:48</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="deleteSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>delete<wbr/>Sync</span><a href="#deleteSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -125,7 +125,7 @@
 <h5>path: <span class="tsd-signature-type">string</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L50">index.d.ts:50</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L50">index.d.ts:50</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="list" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>list</span><a href="#list" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -142,7 +142,7 @@
 <h5>path: <span class="tsd-signature-type">string</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="Lister.html" class="tsd-signature-type" data-tsd-kind="Class">Lister</a><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L58">index.d.ts:58</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L58">index.d.ts:58</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="listSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>list<wbr/>Sync</span><a href="#listSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -159,7 +159,7 @@
 <h5>path: <span class="tsd-signature-type">string</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="BlockingLister.html" class="tsd-signature-type" data-tsd-kind="Class">BlockingLister</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L66">index.d.ts:66</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L66">index.d.ts:66</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="read" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>read</span><a href="#read" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -174,7 +174,7 @@
 <h5>path: <span class="tsd-signature-type">string</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Buffer</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L40">index.d.ts:40</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L40">index.d.ts:40</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="readSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>read<wbr/>Sync</span><a href="#readSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -189,7 +189,7 @@
 <h5>path: <span class="tsd-signature-type">string</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Buffer</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L42">index.d.ts:42</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L42">index.d.ts:42</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="scan" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>scan</span><a href="#scan" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -204,7 +204,7 @@
 <h5>path: <span class="tsd-signature-type">string</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="Lister.html" class="tsd-signature-type" data-tsd-kind="Class">Lister</a><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L44">index.d.ts:44</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L44">index.d.ts:44</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="scanSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>scan<wbr/>Sync</span><a href="#scanSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -219,7 +219,7 @@
 <h5>path: <span class="tsd-signature-type">string</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="BlockingLister.html" class="tsd-signature-type" data-tsd-kind="Class">BlockingLister</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L46">index.d.ts:46</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L46">index.d.ts:46</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="stat" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>stat</span><a href="#stat" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -234,7 +234,7 @@
 <h5>path: <span class="tsd-signature-type">string</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="Metadata.html" class="tsd-signature-type" data-tsd-kind="Class">Metadata</a><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L28">index.d.ts:28</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L28">index.d.ts:28</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="statSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>stat<wbr/>Sync</span><a href="#statSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -249,7 +249,7 @@
 <h5>path: <span class="tsd-signature-type">string</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a href="Metadata.html" class="tsd-signature-type" data-tsd-kind="Class">Metadata</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L30">index.d.ts:30</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L30">index.d.ts:30</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="write" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>write</span><a href="#write" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -266,7 +266,7 @@
 <h5>content: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Buffer</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L36">index.d.ts:36</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L36">index.d.ts:36</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a id="writeSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>write<wbr/>Sync</span><a href="#writeSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
 <ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class">
@@ -283,7 +283,7 @@
 <h5>content: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">Buffer</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/74bd0bb/bindings/nodejs/index.d.ts#L38">index.d.ts:38</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d5c7131/bindings/nodejs/index.d.ts#L38">index.d.ts:38</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
 <div class="tsd-navigation settings">
 <details class="tsd-index-accordion"><summary class="tsd-accordion-summary">
diff --git a/docs/overview/index.html b/docs/overview/index.html
index b230954a..736d344b 100644
--- a/docs/overview/index.html
+++ b/docs/overview/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <title data-rh="true">Overview | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/overview"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.5501b4fd.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.2b1f0508.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.5501b4fd.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
+<script src="/assets/js/runtime~main.2b1f0508.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/python/opendal.html b/docs/python/opendal.html
index 5ccc06fb..65f47720 100644
--- a/docs/python/opendal.html
+++ b/docs/python/opendal.html
@@ -161,15 +161,15 @@
                         <li>
                                 <a class="variable" href="#Metadata.content_type">content_type</a>
                         </li>
-                        <li>
-                                <a class="variable" href="#Metadata.mode">mode</a>
-                        </li>
                         <li>
                                 <a class="variable" href="#Metadata.content_md5">content_md5</a>
                         </li>
                         <li>
                                 <a class="variable" href="#Metadata.content_length">content_length</a>
                         </li>
+                        <li>
+                                <a class="variable" href="#Metadata.mode">mode</a>
+                        </li>
                 </ul>
 
             </li>
@@ -861,41 +861,41 @@ The default value for whence is <code>SEEK_SET</code>. Values for <code>whence</
 
 
                             </div>
-                            <div id="Metadata.mode" class="classattr">
+                            <div id="Metadata.content_md5" class="classattr">
                                 <div class="attr variable">
-            <span class="name">mode</span><span class="annotation">: <a href="#EntryMode">opendal.EntryMode</a></span>
+            <span class="name">content_md5</span><span class="annotation">: Optional[str]</span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.mode"></a>
+    <a class="headerlink" href="#Metadata.content_md5"></a>
     
-            <div class="docstring"><p>mode represent this entry's mode.</p>
+            <div class="docstring"><p>Content MD5 of this entry.</p>
 </div>
 
 
                             </div>
-                            <div id="Metadata.content_md5" class="classattr">
+                            <div id="Metadata.content_length" class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_md5</span><span class="annotation">: Optional[str]</span>
+            <span class="name">content_length</span><span class="annotation">: int</span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.content_md5"></a>
+    <a class="headerlink" href="#Metadata.content_length"></a>
     
-            <div class="docstring"><p>Content MD5 of this entry.</p>
+            <div class="docstring"><p>Content length of this entry.</p>
 </div>
 
 
                             </div>
-                            <div id="Metadata.content_length" class="classattr">
+                            <div id="Metadata.mode" class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_length</span><span class="annotation">: int</span>
+            <span class="name">mode</span><span class="annotation">: <a href="#EntryMode">opendal.EntryMode</a></span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.content_length"></a>
+    <a class="headerlink" href="#Metadata.mode"></a>
     
-            <div class="docstring"><p>Content length of this entry.</p>
+            <div class="docstring"><p>mode represent this entry's mode.</p>
 </div>
 
 
diff --git a/docs/python/search.js b/docs/python/search.js
index 886f6bd0..2e9584de 100644
--- a/docs/python/search.js
+++ b/docs/python/search.js
@@ -1,6 +1,6 @@
 window.pdocSearch = (function(){
 /** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.wa [...]
-    /** pdoc search index */const docs = {"version": "0.9.5", "fields": ["qualname", "fullname", "annotation", "default_value", "signature", "bases", "doc"], "ref": "fullname", "documentStore": {"docs": {"opendal": {"fullname": "opendal", "modulename": "opendal", "kind": "module", "doc": "<p>OpenDAL Python binding</p>\n\n<h2 id=\"installation\">Installation</h2>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code>pip<span class=\"w\"> </span>install<span class=\"w\"> </span> [...]
+    /** pdoc search index */const docs = {"version": "0.9.5", "fields": ["qualname", "fullname", "annotation", "default_value", "signature", "bases", "doc"], "ref": "fullname", "documentStore": {"docs": {"opendal": {"fullname": "opendal", "modulename": "opendal", "kind": "module", "doc": "<p>OpenDAL Python binding</p>\n\n<h2 id=\"installation\">Installation</h2>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code>pip<span class=\"w\"> </span>install<span class=\"w\"> </span> [...]
 
     // mirrored in build-search-index.js (part 1)
     // Also split on html tags. this is a cheap heuristic, but good enough.
diff --git a/docs/rust/implementors/core/convert/trait.From.js b/docs/rust/implementors/core/convert/trait.From.js
index 2efb02dd..ccc5f982 100644
--- a/docs/rust/implementors/core/convert/trait.From.js
+++ b/docs/rust/implementors/core/convert/trait.From.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a>&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt; for FlagSet&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt;"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html\" title=\"trait core:: [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a>&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt; for FlagSet&lt;<a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>&gt;"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html\" title=\"trait core:: [...]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/serde/de/trait.Deserialize.js b/docs/rust/implementors/serde/de/trait.Deserialize.js
index 41deeb6a..e559aff3 100644
--- a/docs/rust/implementors/serde/de/trait.Deserialize.js
+++ b/docs/rust/implementors/serde/de/trait.Deserialize.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl&lt;'de&gt; <a class=\"trait\" href=\"https://docs.rs/serde/1.0.156/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a>&lt;'de&gt; for <a class=\"struct\" href=\"opendal/raw/struct.BytesContentRange.html\" title=\"struct opendal::raw::BytesContentRange\">BytesContentRange</a>"]]
+"opendal":[["impl&lt;'de&gt; <a class=\"trait\" href=\"https://docs.rs/serde/1.0.158/serde/de/trait.Deserialize.html\" title=\"trait serde::de::Deserialize\">Deserialize</a>&lt;'de&gt; for <a class=\"struct\" href=\"opendal/raw/struct.BytesContentRange.html\" title=\"struct opendal::raw::BytesContentRange\">BytesContentRange</a>"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/serde/ser/trait.Serialize.js b/docs/rust/implementors/serde/ser/trait.Serialize.js
index 13fb659e..b09a689f 100644
--- a/docs/rust/implementors/serde/ser/trait.Serialize.js
+++ b/docs/rust/implementors/serde/ser/trait.Serialize.js
@@ -1,3 +1,3 @@
 (function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.156/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"opendal/raw/struct.BytesContentRange.html\" title=\"struct opendal::raw::BytesContentRange\">BytesContentRange</a>"]]
+"opendal":[["impl <a class=\"trait\" href=\"https://docs.rs/serde/1.0.158/serde/ser/trait.Serialize.html\" title=\"trait serde::ser::Serialize\">Serialize</a> for <a class=\"struct\" href=\"opendal/raw/struct.BytesContentRange.html\" title=\"struct opendal::raw::BytesContentRange\">BytesContentRange</a>"]]
 };if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/enum.AsyncBody.html b/docs/rust/opendal/raw/enum.AsyncBody.html
index 5f9e92d0..7798d0ae 100644
--- a/docs/rust/opendal/raw/enum.AsyncBody.html
+++ b/docs/rust/opendal/raw/enum.AsyncBody.html
@@ -8,7 +8,7 @@
 </div><section id="variant.Multipart" class="variant"><a href="#variant.Multipart" class="anchor">§</a><h3 class="code-header">Multipart(<a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,&nbsp;Bytes)</h3></section><div class="docblock"><p>Body with a multipart field.</p>
 <p>If input with this field, we will goto the internal multipart
 handle logic.</p>
-</div></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Default-for-AsyncBody" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#99-103">source</a><a href="#impl-Default-for-AsyncBody" class="anchor">§</a><h3 class="code-header"> [...]
+</div></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Default-for-AsyncBody" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/body.rs.html#99-103">source</a><a href="#impl-Default-for-AsyncBody" class="anchor">§</a><h3 class="code-header"> [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-AsyncBody" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-AsyncBody" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tracing::instrumen [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AsyncBody" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AsyncBody" class="anchor">§</a><h3 class= [...]
diff --git a/docs/rust/opendal/raw/fn.new_request_sign_error.html b/docs/rust/opendal/raw/fn.new_request_sign_error.html
index c504cc81..b0142814 100644
--- a/docs/rust/opendal/raw/fn.new_request_sign_error.html
+++ b/docs/rust/opendal/raw/fn.new_request_sign_error.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Create a new error happened during signing request."><meta name="keywords" content="rust, rustlang, rust-lang, new_request_sign_error"><title>new_request_sign_error in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSe [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Create a new error happened during signing request."><meta name="keywords" content="rust, rustlang, rust-lang, new_request_sign_error"><title>new_request_sign_error in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSe [...]
 </div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.68.0 (2c8cc3432 2023-03-06)" data-search-js="search-98d53477a794af0b.js" data-settings-js="settings-c3c521c753752a1a.js" data-settings-css="settings-08ddfdda51b8ee2e.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.BytesContentRange.html b/docs/rust/opendal/raw/struct.BytesContentRange.html
index ff64cb91..cb0a2587 100644
--- a/docs/rust/opendal/raw/struct.BytesContentRange.html
+++ b/docs/rust/opendal/raw/struct.BytesContentRange.html
@@ -22,9 +22,9 @@ Please make sure their comes up with <code>with_range</code> or <code>with_size<
 </div></details><details class="toggle method-toggle" open><summary><section id="method.to_header" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#111-113">source</a><h4 class="code-header">pub fn <a href="#method.to_header" class="fn">to_header</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.from_bytes_range" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#116-125">source</a><h4 class="code-header">pub fn <a href="#method.from_bytes_range" class="fn">from_bytes_range</a>(total_size: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u64.html">u64</a>, range: <a class="struct" href="struct.Byte [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.to_bytes_range" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#128-134">source</a><h4 class="code-header">pub fn <a href="#method.to_bytes_range" class="fn">to_bytes_range</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#52">source</a><a href="#impl-Clone-for-BytesContentRa [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#52">source</a><a href="#impl-Clone-for-BytesContentRa [...]
 by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.68.0/src/core/cmp.rs.html#227">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.68.0/core/cmp/trait.PartialEq.html#met [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#52">source</a><a href="#impl-Serialize-for-BytesContentRange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.156/s [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#52">source</a><a href="#impl-Serialize-for-BytesContentRange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.158/s [...]
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-BytesContentRange" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait tr [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a href= [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.68.0/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BytesContentRange" class="anchor" [...]
@@ -32,4 +32,4 @@ sufficient, and should not be overridden without very good reason.</div></detail
 <code><a href="https://doc.rust-lang.org/1.68.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
 </div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-BytesContentRange" class="impl has-srclink"><a href="#impl-Pointable-for-BytesContentRange" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl has-srclink"><a href="#associatedconstant.ALIGN [...]
 <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_subscriber">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/trac [...]
-<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details><section id="impl-DeserializeOwned-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.156/src/serde/de/mod.rs.html#604">source< [...]
\ No newline at end of file
+<a href="https://docs.rs/tracing/0.1.37/tracing/instrument/struct.WithDispatch.html" title="WithDispatch"><code>WithDispatch</code></a> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.WithSubscriber.html#method.with_current_subscriber">Read more</a></div></details></div></details><section id="impl-DeserializeOwned-for-BytesContentRange" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/serde/1.0.158/src/serde/de/mod.rs.html#604">source< [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.HttpClient.html b/docs/rust/opendal/raw/struct.HttpClient.html
index b68df78c..c7fe4368 100644
--- a/docs/rust/opendal/raw/struct.HttpClient.html
+++ b/docs/rust/opendal/raw/struct.HttpClient.html
@@ -1,6 +1,6 @@
 <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="HttpClient that used across opendal."><meta name="keywords" content="rust, rustlang, rust-lang, HttpClient"><title>HttpClient in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2 [...]
 </div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-HttpClient" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#55-279">source</a><a href="#impl-HttpClient" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Http [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#136-141">source</a><h4 class="code-header">pub fn <a href="#method.with_client" class="fn">with_client</a>(async_client: <a class="struct" href="https://docs.rs/reqwest/0.11.13/reqwest/async_impl/client/struct.Client.html" title="struct reqwest::async_impl::client::Client">Client</ [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#136-141">source</a><h4 class="code-header">pub fn <a href="#method.with_client" class="fn">with_client</a>(async_client: <a class="struct" href="https://docs.rs/reqwest/0.11.15/reqwest/async_impl/client/struct.Client.html" title="struct reqwest::async_impl::client::Client">Client</ [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>By using this method, it’s caller’s duty to make sure everything
 configured correctly. Like proxy, dns resolver and so on.</p>
@@ -17,7 +17,7 @@ Auto redirect may cause OpenDAL to fail.</p>
 <p>For ureq client, please make sure your client’s redirect count is <code>0</code>:</p>
 
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>_client = ureq::AgentBuilder::new().redirects(<span class="number">0</span>).build();</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.async_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#144-146">source</a><h4 class="code-header">pub fn <a href="#method.async_client" class="fn">async_client</a>(&amp;self) -&gt; <a class="struct" href="https://docs.rs/reqwest/0.11.13/reqwest/async_impl/client/struct.Client.html" title="struct reqwest::async_impl::client::Client">Cl [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.async_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#144-146">source</a><h4 class="code-header">pub fn <a href="#method.async_client" class="fn">async_client</a>(&amp;self) -&gt; <a class="struct" href="https://docs.rs/reqwest/0.11.15/reqwest/async_impl/client/struct.Client.html" title="struct reqwest::async_impl::client::Client">Cl [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.sync_client" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#149-151">source</a><h4 class="code-header">pub fn <a href="#method.sync_client" class="fn">sync_client</a>(&amp;self) -&gt; Agent</h4></section></summary><div class="docblock"><p>Get the sync client from http client.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.send" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#154-200">source</a><h4 class="code-header">pub fn <a href="#method.send" class="fn">send</a>(&amp;self, req: <a class="struct" href="https://docs.rs/http/0.2.9/http/request/struct.Request.html" title="struct http::request::Request">Request</a>&lt;<a class="enum" href="enum.Body.html" titl [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.send_async" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/http_util/client.rs.html#203-278">source</a><h4 class="code-header">pub async fn <a href="#method.send_async" class="fn">send_async</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;req: <a class="struct" href="https://docs.rs/http/0.2.9/http/request/struct.Request.html" title="struct ht [...]
diff --git a/docs/rust/opendal/struct.Error.html b/docs/rust/opendal/struct.Error.html
index 7e4fd30b..f2d63df1 100644
--- a/docs/rust/opendal/struct.Error.html
+++ b/docs/rust/opendal/struct.Error.html
@@ -5,7 +5,7 @@
 <p>If the error already carries an operation, we will push a new context
 <code>(called, operation)</code>.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.with_context" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#247-250">source</a><h4 class="code-header">pub fn <a href="#method.with_context" class="fn">with_context</a>(self, key: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.str.html">str</a>, value: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0 [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.set_source" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#257-262">source</a><h4 class="code-header">pub fn <a href="#method.set_source" class="fn">set_source</a>(self, src: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://docs.rs/an [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.set_source" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#257-262">source</a><h4 class="code-header">pub fn <a href="#method.set_source" class="fn">set_source</a>(self, src: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="https://docs.rs/an [...]
 <h5 id="notes-1"><a href="#notes-1">Notes</a></h5>
 <p>If the source has been set, we will raise a panic here.</p>
 </div></details><details class="toggle method-toggle" open><summary><section id="method.map" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#265-270">source</a><h4 class="code-header">pub fn <a href="#method.map" class="fn">map</a>&lt;F&gt;(self, f: F) -&gt; Self<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnOnce.html" title="trait core:: [...]
diff --git a/docs/rust/opendal/struct.Reader.html b/docs/rust/opendal/struct.Reader.html
index 93262c06..4aad0b03 100644
--- a/docs/rust/opendal/struct.Reader.html
+++ b/docs/rust/opendal/struct.Reader.html
@@ -20,10 +20,10 @@ stream based (like services s3, azure which based on HTTP).</p>
 </div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AsyncRead-for-Reader" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/reader.rs.html#94-102">source</a><a href="#impl-AsyncRead-for-Reader" class="anchor">§</a><h3 class="code-header">impl As [...]
 IO operations. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-AsyncRead-for-Reader-1" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/reader.rs.html#114-128">source</a><a href="#impl-AsyncRead-for-Reader-1" class="anchor">§</a><h3 class="code-header">impl AsyncRead for <a class="struct" href="struct.Reader.html" title="struct opendal::Reader">Reader</a></h3></section></summary><d [...]
 current task for wakeup if the value is not yet available, and returning
-<code>None</code> if the stream is exhausted. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.size_hint" class="method trait-impl has-srclink"><a href="#method.size_hint" class="anchor">§</a><h4 class="code-header">fn <a class="fn">size_hint</a>(&amp;self) -&gt; (<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>, <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Opt [...]
+<code>None</code> if the stream is exhausted. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.size_hint" class="method trait-impl has-srclink"><a href="#method.size_hint" class="anchor">§</a><h4 class="code-header">fn <a class="fn">size_hint</a>(&amp;self) -&gt; (<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>, <a class="enum" href="https://doc.rust-lang.org/1.68.0/core/option/enum.Opt [...]
 manner, returning a future type. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_vectored" class="method trait-impl has-srclink"><a href="#method.read_vectored" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_vectored</a>&lt;'a&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;bufs: &amp;'a mut [<a class="struct" href="https://doc.rust-lang.org/1.68.0/std/io/struct.IoSliceMut.html" t [...]
 IO operations. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_exact" class="method trait-impl has-srclink"><a href="#method.read_exact" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_exact</a>&lt;'a&gt;(&amp;'a mut self, buf: &amp;'a mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u8.html">u8</a>]) -&gt; ReadExact&lt;'a, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&n [...]
-returning an error if end of file (EOF) is hit sooner. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl has-srclink"><a href="#method.read_to_end" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_to_end</a>&lt;'a&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;'a mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/vec/struct.V [...]
+returning an error if end of file (EOF) is hit sooner. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl has-srclink"><a href="#method.read_to_end" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_to_end</a>&lt;'a&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;'a mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/vec/struct.V [...]
 from the underlying reader. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-AsyncReadExt-for-Reader-1" class="impl has-srclink"><a href="#impl-AsyncReadExt-for-Reader-1" class="anchor">§</a><h3 class="code-header">impl&lt;R&gt; AsyncReadExt for R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: AsyncRead + ?<a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="t [...]
 <code>next</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read-1" class="method trait-impl has-srclink"><a href="#method.read-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read</a>&lt;'a&gt;(&amp;'a mut self, buf: &amp;'a mut [<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.u8.html">u8</a>]) -&gt; Read&lt;'a, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp [...]
 returning how many bytes were read. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_buf" class="method trait-impl has-srclink"><a href="#method.read_buf" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_buf</a>&lt;B, 'a&gt;(&amp;'a mut self, buf: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>B) -&gt; ReadBuf&lt;'a, Self, B&gt;<span class="where fmt-new [...]
@@ -47,7 +47,7 @@ underlying reader. <a>Read more</a></div></details><details class="toggle method
 underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_i128_le" class="method trait-impl has-srclink"><a href="#method.read_i128_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_i128_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadI128Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp [...]
 underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f32_le" class="method trait-impl has-srclink"><a href="#method.read_f32_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f32_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadF32Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
 underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_f64_le" class="method trait-impl has-srclink"><a href="#method.read_f64_le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_f64_le</a>&lt;'a&gt;(&amp;'a mut self) -&gt; ReadF64Le&lt;<a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;'a mut </a>Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nb [...]
-underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end-1" class="method trait-impl has-srclink"><a href="#method.read_to_end-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_to_end</a>&lt;'a&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;'a mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/vec/struct.Vec.html" title="struct alloc::ve [...]
+underlying reader. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end-1" class="method trait-impl has-srclink"><a href="#method.read_to_end-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">read_to_end</a>&lt;'a&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;'a mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/alloc/vec/struct.Vec.html" title="struct alloc::ve [...]
 new position in the object and the object itself. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.stream_position" class="method trait-impl has-srclink"><a href="#method.stream_position" class="anchor">§</a><h4 class="code-header">fn <a class="fn">stream_position</a>(&amp;mut self) -&gt; Seek&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/ [...]
 start of the stream. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-AsyncSeekExt-for-Reader-1" class="impl has-srclink"><a href="#impl-AsyncSeekExt-for-Reader-1" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; AsyncSeekExt for S<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: AsyncSeek + ?<a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait co [...]
 new position in the object and the object itself. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.rewind" class="method trait-impl has-srclink"><a href="#method.rewind" class="anchor">§</a><h4 class="code-header">fn <a class="fn">rewind</a>(&amp;mut self) -&gt; Seek&lt;'_, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Unpin.htm [...]
@@ -77,10 +77,10 @@ resolves to <code>true</code>. <a>Read more</a></div></details><details class="t
 resolves to <code>true</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take_until" class="method trait-impl has-srclink"><a href="#method.take_until" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take_until</a>&lt;Fut&gt;(self, fut: Fut) -&gt; TakeUntil&lt;Self, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/future/futur [...]
 closure for each element on the stream. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.for_each_concurrent" class="method trait-impl has-srclink"><a href="#method.for_each_concurrent" class="anchor">§</a><h4 class="code-header">fn <a class="fn">for_each_concurrent</a>&lt;Fut, F&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;limit: impl <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/convert/trait.Into [...]
 closure for each element on the stream concurrently as elements become
-available. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take-1" class="method trait-impl has-srclink"><a href="#method.take-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take</a>(self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; Take&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.ru [...]
+available. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take" class="method trait-impl has-srclink"><a href="#method.take" class="anchor">§</a><h4 class="code-header">fn <a class="fn">take</a>(self, n: <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.usize.html">usize</a>) -&gt; Take&lt;Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-l [...]
 again be called once it has finished. This method can be used to turn
-any <code>Stream</code> into a <code>FusedStream</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.by_ref" class="method trait-impl has-srclink"><a href="#method.by_ref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">by_ref</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div class='docblock'>Borrows a str [...]
-into the sink and the sink has been flushed and closed. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.split-1" class="method trait-impl has-srclink"><a href="#method.split-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">split</a>&lt;Item&gt;(self) -&gt; (SplitSink&lt;Self, Item&gt;, SplitStream&lt;Self&gt;)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sink&lt;Item&gt; + <a class="trait" hre [...]
+any <code>Stream</code> into a <code>FusedStream</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.by_ref" class="method trait-impl has-srclink"><a href="#method.by_ref" class="anchor">§</a><h4 class="code-header">fn <a class="fn">by_ref</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.68.0/std/primitive.reference.html">&amp;mut </a>Self</h4></section></summary><div class='docblock'>Borrows a str [...]
+into the sink and the sink has been flushed and closed. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.split" class="method trait-impl has-srclink"><a href="#method.split" class="anchor">§</a><h4 class="code-header">fn <a class="fn">split</a>&lt;Item&gt;(self) -&gt; (SplitSink&lt;Self, Item&gt;, SplitStream&lt;Self&gt;)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sink&lt;Item&gt; + <a class="trait" href="h [...]
 objects. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.inspect" class="method trait-impl has-srclink"><a href="#method.inspect" class="anchor">§</a><h4 class="code-header">fn <a class="fn">inspect</a>&lt;F&gt;(self, f: F) -&gt; Inspect&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/ops/function/trait.FnMut.html" title="trait core::ops:: [...]
 of that <code>Either</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.right_stream" class="method trait-impl has-srclink"><a href="#method.right_stream" class="anchor">§</a><h4 class="code-header">fn <a class="fn">right_stream</a>&lt;B&gt;(self) -&gt; Either&lt;B, Self&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;B: Stream&lt;Item = Self::Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href= [...]
 of that <code>Either</code>. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.poll_next_unpin" class="method trait-impl has-srclink"><a href="#method.poll_next_unpin" class="anchor">§</a><h4 class="code-header">fn <a class="fn">poll_next_unpin</a>(&amp;mut self, cx: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.68.0/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a>&lt;'_&gt;) -&gt [...]
@@ -108,7 +108,7 @@ greater than or equal to those of another. <a>Read more</a></div></details><deta
 equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.gt" class="method trait-impl has-srclink"><a href="#method.gt" class="anchor">§</a><h4 class="code-header">fn <a class="fn">gt</a>&lt;S&gt;(self, other: S) -&gt; GtFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core:: [...]
 greater than those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.le" class="method trait-impl has-srclink"><a href="#method.le" class="anchor">§</a><h4 class="code-header">fn <a class="fn">le</a>&lt;S&gt;(self, other: S) -&gt; LeFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait co [...]
 less or equal to those of another. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.lt" class="method trait-impl has-srclink"><a href="#method.lt" class="anchor">§</a><h4 class="code-header">fn <a class="fn">lt</a>&lt;S&gt;(self, other: S) -&gt; LtFuture&lt;Self, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trai [...]
-less than those of another. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-StreamExt-for-Reader-2" class="impl has-srclink"><a href="#impl-StreamExt-for-Reader-2" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; StreamExt for S<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: Stream + ?<a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::m [...]
+less than those of another. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-StreamExt-for-Reader-2" class="impl has-srclink"><a href="#impl-StreamExt-for-Reader-2" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; StreamExt for S<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: Stream + ?<a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait core::m [...]
 <code>false</code>, and then collects them into two collections. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.fold-2" class="method trait-impl has-srclink"><a href="#method.fold-2" class="anchor">§</a><h4 class="code-header">fn <a class="fn">fold</a>&lt;T, F&gt;(self, init: T, f: F) -&gt; FoldFuture&lt;Self, F, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang [...]
 into the one provided. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map_ok" class="method trait-impl has-srclink"><a href="#method.map_ok" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map_ok</a>&lt;T, F&gt;(self, f: F) -&gt; MapOk&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title="trait co [...]
 using the provided closure. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.map_err" class="method trait-impl has-srclink"><a href="#method.map_err" class="anchor">§</a><h4 class="code-header">fn <a class="fn">map_err</a>&lt;E, F&gt;(self, f: F) -&gt; MapErr&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/1.68.0/core/marker/trait.Sized.html" title= [...]
diff --git a/index.html b/index.html
index 93cdd4cf..3998baf9 100644
--- a/index.html
+++ b/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <title data-rh="true">Apache OpenDAL</title><meta data-rh="true" property="og:title" content="Apache OpenDAL"><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docse [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.8610ae2e.css">
-<link rel="preload" href="/assets/js/runtime~main.5501b4fd.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.2b1f0508.js" as="script">
 <link rel="preload" href="/assets/js/main.d23512d8.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
 <div id="docusaurus-base-url-issue-banner-container"></div><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hid [...]
-<script src="/assets/js/runtime~main.5501b4fd.js"></script>
+<script src="/assets/js/runtime~main.2b1f0508.js"></script>
 <script src="/assets/js/main.d23512d8.js"></script>
 </body>
 </html>
\ No newline at end of file