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 ef81f91b deploy: 26c99a009746bb653f559891daabac489a2ae0b3
ef81f91b is described below

commit ef81f91baa76554c57e4278c0d1eaec1f4cf03bd
Author: Xuanwo <[email protected]>
AuthorDate: Tue Apr 18 11:06:21 2023 +0000

    deploy: 26c99a009746bb653f559891daabac489a2ae0b3
---
 404.html                                           |  4 +-
 assets/js/ae4554eb.b04e6fad.js                     |  1 +
 assets/js/ae4554eb.fedc082f.js                     |  1 -
 assets/js/c377a04b.6ef9be55.js                     |  1 +
 assets/js/c377a04b.d4227e28.js                     |  1 -
 ...e~main.6f0ed462.js => runtime~main.384e1bab.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/index.html                                    |  6 +--
 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                  | 56 +++++++++++-----------
 docs/nodejs/interfaces/PresignedRequest.html       |  8 ++--
 docs/python/opendal.html                           | 50 +++++++++----------
 docs/python/search.js                              |  2 +-
 docs/rust/opendal/layers/index.html                |  2 +-
 .../rust/opendal/layers/struct.MinitraceLayer.html |  4 +-
 .../opendal/layers/struct.PrometheusLayer.html     |  9 ++--
 docs/rust/opendal/raw/trait.Layer.html             |  2 +-
 docs/rust/opendal/struct.Operator.html             | 50 +++++++++----------
 docs/rust/src/opendal/layers/minitrace.rs.html     |  6 ++-
 docs/rust/src/opendal/layers/mod.rs.html           |  2 -
 docs/rust/src/opendal/layers/prometheus.rs.html    |  8 ++--
 docs/rust/src/opendal/services/obs/core.rs.html    |  6 ++-
 docs/rust/src/opendal/services/oss/core.rs.html    |  4 +-
 docs/rust/src/opendal/services/s3/core.rs.html     |  4 +-
 .../src/opendal/services/webhdfs/pager.rs.html     |  4 +-
 .../src/opendal/types/operator/operator.rs.html    |  6 ++-
 docs/vision/index.html                             |  6 +--
 index.html                                         |  4 +-
 35 files changed, 156 insertions(+), 143 deletions(-)

diff --git a/404.html b/404.html
index bd987c76..b2e65564 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.6f0ed462.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.384e1bab.js" as="script">
 <link rel="preload" href="/assets/js/main.5b9603d6.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.6f0ed462.js"></script>
+<script src="/assets/js/runtime~main.384e1bab.js"></script>
 <script src="/assets/js/main.5b9603d6.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/js/ae4554eb.b04e6fad.js b/assets/js/ae4554eb.b04e6fad.js
new file mode 100644
index 00000000..2c07cf31
--- /dev/null
+++ b/assets/js/ae4554eb.b04e6fad.js
@@ -0,0 +1 @@
+"use 
strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[983],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var
 a=r(7294);function n(e,t,r){return t in 
e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function
 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var 
a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return 
Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}retur 
[...]
\ No newline at end of file
diff --git a/assets/js/ae4554eb.fedc082f.js b/assets/js/ae4554eb.fedc082f.js
deleted file mode 100644
index fd686be8..00000000
--- a/assets/js/ae4554eb.fedc082f.js
+++ /dev/null
@@ -1 +0,0 @@
-"use 
strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[983],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var
 a=r(7294);function n(e,t,r){return t in 
e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function
 o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var 
a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return 
Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,a)}retur 
[...]
\ No newline at end of file
diff --git a/assets/js/c377a04b.6ef9be55.js b/assets/js/c377a04b.6ef9be55.js
new file mode 100644
index 00000000..c50783a7
--- /dev/null
+++ b/assets/js/c377a04b.6ef9be55.js
@@ -0,0 +1 @@
+"use 
strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[971],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var
 r=n(7294);function a(e,t,n){return t in 
e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function
 o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 
r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return 
Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}retur 
[...]
\ No newline at end of file
diff --git a/assets/js/c377a04b.d4227e28.js b/assets/js/c377a04b.d4227e28.js
deleted file mode 100644
index ab896485..00000000
--- a/assets/js/c377a04b.d4227e28.js
+++ /dev/null
@@ -1 +0,0 @@
-"use 
strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[971],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var
 r=n(7294);function a(e,t,n){return t in 
e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function
 o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var 
r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return 
Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}retur 
[...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.6f0ed462.js 
b/assets/js/runtime~main.384e1bab.js
similarity index 95%
rename from assets/js/runtime~main.6f0ed462.js
rename to assets/js/runtime~main.384e1bab.js
index bfabd139..52658192 100644
--- a/assets/js/runtime~main.6f0ed462.js
+++ b/assets/js/runtime~main.384e1bab.js
@@ -1 +1 @@
-(()=>{"use strict";var e,t,r,a,o,f={},n={};function c(e){var t=n[e];if(void 
0!==t)return t.exports;var r=n[e]={exports:{}};return 
f[e].call(r.exports,r,r.exports,c),r.exports}c.m=f,e=[],c.O=(t,r,a,o)=>{if(!r){var
 f=1/0;for(d=0;d<e.length;d++){r=e[d][0],a=e[d][1],o=e[d][2];for(var 
n=!0,i=0;i<r.length;i++)(!1&o||f>=o)&&Object.keys(c.O).every((e=>c.O[e](r[i])))?r.splice(i--,1):(n=!1,o<f&&(f=o));if(n){e.splice(d--,1);var
 b=a();void 0!==b&&(t=b)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1] [...]
\ No newline at end of file
+(()=>{"use strict";var e,t,r,a,o,f={},n={};function c(e){var t=n[e];if(void 
0!==t)return t.exports;var r=n[e]={exports:{}};return 
f[e].call(r.exports,r,r.exports,c),r.exports}c.m=f,e=[],c.O=(t,r,a,o)=>{if(!r){var
 f=1/0;for(d=0;d<e.length;d++){r=e[d][0],a=e[d][1],o=e[d][2];for(var 
n=!0,i=0;i<r.length;i++)(!1&o||f>=o)&&Object.keys(c.O).every((e=>c.O[e](r[i])))?r.splice(i--,1):(n=!1,o<f&&(f=o));if(n){e.splice(d--,1);var
 b=a();void 0!==b&&(t=b)}}return t}o=o||0;for(var d=e.length;d>0&&e[d-1] [...]
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
index 0aa6c00c..070f5de8 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.6f0ed462.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.384e1bab.js" as="script">
 <link rel="preload" href="/assets/js/main.5b9603d6.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.6f0ed462.js"></script>
+<script src="/assets/js/runtime~main.384e1bab.js"></script>
 <script src="/assets/js/main.5b9603d6.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index 7f8109c3..b18fc57e 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.6f0ed462.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.384e1bab.js" as="script">
 <link rel="preload" href="/assets/js/main.5b9603d6.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.6f0ed462.js"></script>
+<script src="/assets/js/runtime~main.384e1bab.js"></script>
 <script src="/assets/js/main.5b9603d6.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 28a02e26..ab4637a0 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.6f0ed462.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.384e1bab.js" as="script">
 <link rel="preload" href="/assets/js/main.5b9603d6.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.6f0ed462.js"></script>
+<script src="/assets/js/runtime~main.384e1bab.js"></script>
 <script src="/assets/js/main.5b9603d6.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 254c04fe..6784970c 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.6f0ed462.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.384e1bab.js" as="script">
 <link rel="preload" href="/assets/js/main.5b9603d6.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.6f0ed462.js"></script>
+<script src="/assets/js/runtime~main.384e1bab.js"></script>
 <script src="/assets/js/main.5b9603d6.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/index.html b/blog/tags/index.html
index 8a2f933f..e6447fe8 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.6f0ed462.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.384e1bab.js" as="script">
 <link rel="preload" href="/assets/js/main.5b9603d6.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.6f0ed462.js"></script>
+<script src="/assets/js/runtime~main.384e1bab.js"></script>
 <script src="/assets/js/main.5b9603d6.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
index 07625ffe..59182ec2 100644
--- a/docs/index.html
+++ b/docs/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/";><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-rh="tru [...]
 <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.6f0ed462.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.384e1bab.js" as="script">
 <link rel="preload" href="/assets/js/main.5b9603d6.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.6f0ed462.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.384e1bab.js"></script>
 <script src="/assets/js/main.5b9603d6.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 997477ef..2b6ff6ef 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/59c1cce/bindings/nodejs/index.d.ts#L413";>index.d.ts:413</a></li></ul></aside>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L413";>index.d.ts:413</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/59c1cce/bindings/nodejs/index.d.ts#L414";>index.d.ts:414</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L414";>index.d.ts:414</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 45f1e64a..e6e79ee5 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/59c1cce/bindings/nodejs/index.d.ts#L380";>index.d.ts:380</a></li></ul></aside>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L380";>index.d.ts:380</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/59c1cce/bindings/nodejs/index.d.ts#L382";>index.d.ts:382</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L382";>index.d.ts:382</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 3861e474..00426037 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/59c1cce/bindings/nodejs/index.d.ts#L402";>index.d.ts:402</a></li></ul></aside>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L402";>index.d.ts:402</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/59c1cce/bindings/nodejs/index.d.ts#L411";>index.d.ts:411</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L411";>index.d.ts:411</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 eda1d939..7f2fb44e 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/59c1cce/bindings/nodejs/index.d.ts#L384";>index.d.ts:384</a></li></ul></aside>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L384";>index.d.ts:384</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/59c1cce/bindings/nodejs/index.d.ts#L390";>index.d.ts:390</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L390";>index.d.ts:390</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/59c1cce/bindings/nodejs/index.d.ts#L392";>index.d.ts:392</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L392";>index.d.ts:392</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/59c1cce/bindings/nodejs/index.d.ts#L394";>index.d.ts:394</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L394";>index.d.ts:394</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/59c1cce/bindings/nodejs/index.d.ts#L396";>index.d.ts:396</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L396";>index.d.ts:396</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/59c1cce/bindings/nodejs/index.d.ts#L398";>index.d.ts:398</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L398";>index.d.ts:398</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/59c1cce/bindings/nodejs/index.d.ts#L400";>index.d.ts:400</a></li></ul></aside></li></ul></section></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L400";>index.d.ts:400</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/59c1cce/bindings/nodejs/index.d.ts#L386";>index.d.ts:386</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L386";>index.d.ts:386</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/59c1cce/bindings/nodejs/index.d.ts#L388";>index.d.ts:388</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L388";>index.d.ts:388</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 dd56b681..c8461999 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/59c1cce/bindings/nodejs/index.d.ts#L33";>index.d.ts:33</a></li></ul></aside>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L33";>index.d.ts:33</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">
@@ -75,7 +75,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/59c1cce/bindings/nodejs/index.d.ts#L34";>index.d.ts:34</a></li></ul></aside></li></ul></section></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L34";>index.d.ts:34</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="check" class="tsd-anchor"></a>
@@ -94,7 +94,7 @@
 </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/59c1cce/bindings/nodejs/index.d.ts#L77";>index.d.ts:77</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L77";>index.d.ts:77</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a 
id="copy" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>copy</span><a href="#copy" 
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">
@@ -117,7 +117,7 @@
 <h5>to: <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/59c1cce/bindings/nodejs/index.d.ts#L162";>index.d.ts:162</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L162";>index.d.ts:162</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a 
id="copySync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>copy<wbr/>Sync</span><a href="#copySync" 
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">
@@ -140,7 +140,7 @@
 <h5>to: <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/59c1cce/bindings/nodejs/index.d.ts#L171";>index.d.ts:171</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L171";>index.d.ts:171</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a 
id="createDir" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>create<wbr/>Dir</span><a href="#createDir" 
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">
@@ -161,7 +161,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/59c1cce/bindings/nodejs/index.d.ts#L104";>index.d.ts:104</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L104";>index.d.ts:104</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">
@@ -182,7 +182,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/59c1cce/bindings/nodejs/index.d.ts#L113";>index.d.ts:113</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L113";>index.d.ts:113</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">
@@ -208,7 +208,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/59c1cce/bindings/nodejs/index.d.ts#L251";>index.d.ts:251</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L251";>index.d.ts:251</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">
@@ -229,7 +229,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/59c1cce/bindings/nodejs/index.d.ts#L260";>index.d.ts:260</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L260";>index.d.ts:260</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a 
id="isExist" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>is<wbr/>Exist</span><a href="#isExist" 
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">
@@ -250,7 +250,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">boolean</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/59c1cce/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/26c99a0/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-method tsd-parent-kind-class"><a 
id="isExistSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>is<wbr/>Exist<wbr/>Sync</span><a 
href="#isExistSync" 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">
@@ -271,7 +271,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">boolean</span></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/59c1cce/bindings/nodejs/index.d.ts#L95";>index.d.ts:95</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L95";>index.d.ts:95</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">
@@ -294,7 +294,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/59c1cce/bindings/nodejs/index.d.ts#L307";>index.d.ts:307</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L307";>index.d.ts:307</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">
@@ -317,7 +317,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/59c1cce/bindings/nodejs/index.d.ts#L330";>index.d.ts:330</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L330";>index.d.ts:330</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a 
id="presignRead" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>presign<wbr/>Read</span><a 
href="#presignRead" 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">
@@ -341,7 +341,7 @@
 <h5>expires: <span 
class="tsd-signature-type">number</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a 
href="../interfaces/PresignedRequest.html" class="tsd-signature-type" 
data-tsd-kind="Interface">PresignedRequest</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/59c1cce/bindings/nodejs/index.d.ts#L346";>index.d.ts:346</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L346";>index.d.ts:346</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a 
id="presignStat" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>presign<wbr/>Stat</span><a 
href="#presignStat" 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">
@@ -365,7 +365,7 @@
 <h5>expires: <span 
class="tsd-signature-type">number</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a 
href="../interfaces/PresignedRequest.html" class="tsd-signature-type" 
data-tsd-kind="Interface">PresignedRequest</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/59c1cce/bindings/nodejs/index.d.ts#L378";>index.d.ts:378</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L378";>index.d.ts:378</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a 
id="presignWrite" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>presign<wbr/>Write</span><a 
href="#presignWrite" 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">
@@ -389,7 +389,7 @@
 <h5>expires: <span 
class="tsd-signature-type">number</span></h5></li></ul></div>
 <h4 class="tsd-returns-title">Returns <a 
href="../interfaces/PresignedRequest.html" class="tsd-signature-type" 
data-tsd-kind="Interface">PresignedRequest</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/59c1cce/bindings/nodejs/index.d.ts#L362";>index.d.ts:362</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L362";>index.d.ts:362</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">
@@ -410,7 +410,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/59c1cce/bindings/nodejs/index.d.ts#L122";>index.d.ts:122</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L122";>index.d.ts:122</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">
@@ -431,7 +431,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/59c1cce/bindings/nodejs/index.d.ts#L131";>index.d.ts:131</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L131";>index.d.ts:131</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a 
id="remove" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>remove</span><a href="#remove" 
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">
@@ -457,7 +457,7 @@
 <h5>paths: <span class="tsd-signature-type">string</span><span 
class="tsd-signature-symbol">[]</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/59c1cce/bindings/nodejs/index.d.ts#L272";>index.d.ts:272</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L272";>index.d.ts:272</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a 
id="removeAll" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>remove<wbr/>All</span><a href="#removeAll" 
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">
@@ -483,7 +483,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/59c1cce/bindings/nodejs/index.d.ts#L284";>index.d.ts:284</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L284";>index.d.ts:284</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a 
id="rename" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>rename</span><a href="#rename" 
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">
@@ -507,7 +507,7 @@
 <h5>to: <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/59c1cce/bindings/nodejs/index.d.ts#L182";>index.d.ts:182</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L182";>index.d.ts:182</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class"><a 
id="renameSync" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>rename<wbr/>Sync</span><a href="#renameSync" 
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">
@@ -531,7 +531,7 @@
 <h5>to: <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/59c1cce/bindings/nodejs/index.d.ts#L193";>index.d.ts:193</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L193";>index.d.ts:193</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">
@@ -554,7 +554,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/59c1cce/bindings/nodejs/index.d.ts#L216";>index.d.ts:216</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L216";>index.d.ts:216</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">
@@ -577,7 +577,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/59c1cce/bindings/nodejs/index.d.ts#L239";>index.d.ts:239</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L239";>index.d.ts:239</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">
@@ -608,7 +608,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/59c1cce/bindings/nodejs/index.d.ts#L54";>index.d.ts:54</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L54";>index.d.ts:54</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">
@@ -629,7 +629,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/59c1cce/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/26c99a0/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="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">
@@ -652,7 +652,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/59c1cce/bindings/nodejs/index.d.ts#L142";>index.d.ts:142</a></li></ul></aside></li></ul></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L142";>index.d.ts:142</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">
@@ -675,7 +675,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/59c1cce/bindings/nodejs/index.d.ts#L153";>index.d.ts:153</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L153";>index.d.ts:153</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/interfaces/PresignedRequest.html 
b/docs/nodejs/interfaces/PresignedRequest.html
index 3040082b..8256a5b2 100644
--- a/docs/nodejs/interfaces/PresignedRequest.html
+++ b/docs/nodejs/interfaces/PresignedRequest.html
@@ -20,7 +20,7 @@
 <ul class="tsd-hierarchy">
 <li><span class="target">PresignedRequest</span></li></ul></section><aside 
class="tsd-sources">
 <ul>
-<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/59c1cce/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/26c99a0/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">
@@ -40,21 +40,21 @@
 <div class="tsd-comment tsd-typography"><p>HTTP headers of this request.</p>
 </div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/59c1cce/bindings/nodejs/index.d.ts#L31";>index.d.ts:31</a></li></ul></aside></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L31";>index.d.ts:31</a></li></ul></aside></section>
 <section class="tsd-panel tsd-member tsd-kind-property 
tsd-parent-kind-interface"><a id="method" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>method</span><a href="#method" 
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>
 <div class="tsd-signature">method<span class="tsd-signature-symbol">:</span> 
<span class="tsd-signature-type">string</span></div>
 <div class="tsd-comment tsd-typography"><p>HTTP method of this request.</p>
 </div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/59c1cce/bindings/nodejs/index.d.ts#L27";>index.d.ts:27</a></li></ul></aside></section>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L27";>index.d.ts:27</a></li></ul></aside></section>
 <section class="tsd-panel tsd-member tsd-kind-property 
tsd-parent-kind-interface"><a id="url" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>url</span><a href="#url" 
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>
 <div class="tsd-signature">url<span class="tsd-signature-symbol">:</span> 
<span class="tsd-signature-type">string</span></div>
 <div class="tsd-comment tsd-typography"><p>URL of this request.</p>
 </div><aside class="tsd-sources">
 <ul>
-<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/59c1cce/bindings/nodejs/index.d.ts#L29";>index.d.ts:29</a></li></ul></aside></section></section></div>
+<li>Defined in <a 
href="https://github.com/apache/incubator-opendal/blob/26c99a0/bindings/nodejs/index.d.ts#L29";>index.d.ts:29</a></li></ul></aside></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/python/opendal.html b/docs/python/opendal.html
index 095af37e..ce7a7051 100644
--- a/docs/python/opendal.html
+++ b/docs/python/opendal.html
@@ -156,19 +156,19 @@
                     <a class="class" href="#Metadata">Metadata</a>
                             <ul class="memberlist">
                         <li>
-                                <a class="variable" 
href="#Metadata.content_length">content_length</a>
+                                <a class="variable" 
href="#Metadata.content_md5">content_md5</a>
                         </li>
                         <li>
-                                <a class="variable" 
href="#Metadata.content_md5">content_md5</a>
+                                <a class="variable" 
href="#Metadata.etag">etag</a>
                         </li>
                         <li>
-                                <a class="variable" 
href="#Metadata.content_type">content_type</a>
+                                <a class="variable" 
href="#Metadata.content_length">content_length</a>
                         </li>
                         <li>
-                                <a class="variable" 
href="#Metadata.mode">mode</a>
+                                <a class="variable" 
href="#Metadata.content_type">content_type</a>
                         </li>
                         <li>
-                                <a class="variable" 
href="#Metadata.etag">etag</a>
+                                <a class="variable" 
href="#Metadata.mode">mode</a>
                         </li>
                 </ul>
 
@@ -852,67 +852,67 @@ The default value for whence is <code>SEEK_SET</code>. 
Values for <code>whence</
     
     
 
-                            <div id="Metadata.content_length" 
class="classattr">
+                            <div id="Metadata.content_md5" class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_length</span><span class="annotation">: 
int</span>
+            <span class="name">content_md5</span><span class="annotation">: 
Optional[str]</span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.content_length"></a>
+    <a class="headerlink" href="#Metadata.content_md5"></a>
     
-            <div class="docstring"><p>Content length of this entry.</p>
+            <div class="docstring"><p>Content MD5 of this entry.</p>
 </div>
 
 
                             </div>
-                            <div id="Metadata.content_md5" class="classattr">
+                            <div id="Metadata.etag" class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_md5</span><span class="annotation">: 
Optional[str]</span>
+            <span class="name">etag</span><span class="annotation">: 
Optional[str]</span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.content_md5"></a>
+    <a class="headerlink" href="#Metadata.etag"></a>
     
-            <div class="docstring"><p>Content MD5 of this entry.</p>
+            <div class="docstring"><p>ETag of this entry.</p>
 </div>
 
 
                             </div>
-                            <div id="Metadata.content_type" class="classattr">
+                            <div id="Metadata.content_length" 
class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_type</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_type"></a>
+    <a class="headerlink" href="#Metadata.content_length"></a>
     
-            <div class="docstring"><p>Content Type of this entry.</p>
+            <div class="docstring"><p>Content length of this entry.</p>
 </div>
 
 
                             </div>
-                            <div id="Metadata.mode" class="classattr">
+                            <div id="Metadata.content_type" 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_type</span><span class="annotation">: 
Optional[str]</span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.mode"></a>
+    <a class="headerlink" href="#Metadata.content_type"></a>
     
-            <div class="docstring"><p>mode represent this entry's mode.</p>
+            <div class="docstring"><p>Content Type of this entry.</p>
 </div>
 
 
                             </div>
-                            <div id="Metadata.etag" class="classattr">
+                            <div id="Metadata.mode" class="classattr">
                                 <div class="attr variable">
-            <span class="name">etag</span><span class="annotation">: 
Optional[str]</span>
+            <span class="name">mode</span><span class="annotation">: <a 
href="#EntryMode">opendal.EntryMode</a></span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.etag"></a>
+    <a class="headerlink" href="#Metadata.mode"></a>
     
-            <div class="docstring"><p>ETag 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 d494b96d..90bc0d23 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/opendal/layers/index.html 
b/docs/rust/opendal/layers/index.html
index bfa7d26d..41d21616 100644
--- a/docs/rust/opendal/layers/index.html
+++ b/docs/rust/opendal/layers/index.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="`Layer` is 
the mechanism to intercept operations."><meta name="keywords" content="rust, 
rustlang, rust-lang, layers"><title>opendal::layers - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
+<!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="`Layer` is 
the mechanism to intercept operations."><meta name="keywords" content="rust, 
rustlang, rust-lang, layers"><title>opendal::layers - Rust</title><link 
rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.ttf.woff2"> [...]
 </div></details><h2 id="structs" class="small-section-header"><a 
href="#structs">Structs</a></h2><div class="item-table"><div 
class="item-row"><div class="item-left module-item"><a class="struct" 
href="struct.ChaosLayer.html" title="opendal::layers::ChaosLayer 
struct">ChaosLayer</a></div><div class="item-right docblock-short">Inject chaos 
into underlying services for robustness test.</div></div><div 
class="item-row"><div class="item-left module-item"><a class="struct" 
href="struct.Concur [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/layers/struct.MinitraceLayer.html 
b/docs/rust/opendal/layers/struct.MinitraceLayer.html
index 61ea9458..9a1746c1 100644
--- a/docs/rust/opendal/layers/struct.MinitraceLayer.html
+++ b/docs/rust/opendal/layers/struct.MinitraceLayer.html
@@ -1,4 +1,4 @@
-<!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="Add 
minitrace for every operations."><meta name="keywords" content="rust, rustlang, 
rust-lang, MinitraceLayer"><title>MinitraceLayer in opendal::layers - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72 [...]
+<!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="Add 
minitrace for every operations."><meta name="keywords" content="rust, rustlang, 
rust-lang, MinitraceLayer"><title>MinitraceLayer in opendal::layers - 
Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72 [...]
 <h2 id="examples"><a href="#examples">Examples</a></h2><h3 id="basic-setup"><a 
href="#basic-setup">Basic Setup</a></h3>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">use </span>anyhow::Result;
 <span class="kw">use </span>opendal::layers::MinitraceLayer;
@@ -62,7 +62,7 @@
     minitrace_jaeger::encode(<span 
class="string">&quot;opendal&quot;</span>.to_owned(), rand::random(), <span 
class="number">0</span>, <span class="number">0</span>, <span 
class="kw-2">&amp;</span>spans).unwrap();
 minitrace_jaeger::report_blocking(<span 
class="string">&quot;127.0.0.1:6831&quot;</span>.parse().unwrap(), <span 
class="kw-2">&amp;</span>bytes).expect(<span class="string">&quot;report 
error&quot;</span>);</code></pre></div>
 <p>For real-world usage, please take a look at <a 
href="https://crates.io/crates/minitrace-datadog";><code>minitrace-datadog</code></a>
 or <a 
href="https://crates.io/crates/minitrace-jaeger";><code>minitrace-jaeger</code></a>
 .</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-Layer%3CA%3E-for-MinitraceLayer" class="impl 
has-srclink"><a class="srclink rightside" 
href="../../src/opendal/layers/minitrace.rs.html#116-122">source</a><a 
href="#impl-Layer%3CA%3E-for-MinitraceLayer" class="anchor">§</a>< [...]
+</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-Layer%3CA%3E-for-MinitraceLayer" class="impl 
has-srclink"><a class="srclink rightside" 
href="../../src/opendal/layers/minitrace.rs.html#118-124">source</a><a 
href="#impl-Layer%3CA%3E-for-MinitraceLayer" class="anchor">§</a>< [...]
 </div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-Instrument-for-MinitraceLayer" 
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-MinitraceLayer" 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: [...]
 <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-MinitraceLayer" 
class="impl has-srclink"><a class="srclink rightside" 
href="https://doc.rust-lang.org/1.68.2/src/core/convert/mod.rs.html#717";>source</a><a
 href="#impl-Into%3CU%3E-for-MinitraceLayer" class="anchor">§</a> [...]
diff --git a/docs/rust/opendal/layers/struct.PrometheusLayer.html 
b/docs/rust/opendal/layers/struct.PrometheusLayer.html
index f7180945..03c91e33 100644
--- a/docs/rust/opendal/layers/struct.PrometheusLayer.html
+++ b/docs/rust/opendal/layers/struct.PrometheusLayer.html
@@ -1,12 +1,11 @@
-<!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="Add 
prometheus for every operations."><meta name="keywords" content="rust, 
rustlang, rust-lang, PrometheusLayer"><title>PrometheusLayer in opendal::layers 
- Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-1f7d512b176f0 [...]
+<!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="Add 
prometheus for every operations."><meta name="keywords" content="rust, 
rustlang, rust-lang, PrometheusLayer"><title>PrometheusLayer in opendal::layers 
- Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin 
href="../../static.files/SourceSerif4-Regular-1f7d512b176f0 [...]
 <h2 id="examples"><a href="#examples">Examples</a></h2>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">use </span>log::debug;
 <span class="kw">use </span>log::info;
+<span class="kw">use </span>opendal::layers::PrometheusLayer;
 <span class="kw">use </span>opendal::services;
 <span class="kw">use </span>opendal::Operator;
 <span class="kw">use </span>opendal::Result;
-
-<span class="kw">use </span>opendal::layers::PrometheusLayer;
 <span class="kw">use </span>prometheus::Encoder;
 
 <span class="doccomment">/// Visit [`opendal::services`] for more service 
related config.
@@ -41,8 +40,8 @@
     <span class="macro">println!</span>(<span 
class="string">&quot;{}&quot;</span>, 
String::from_utf8(buffer.clone()).unwrap());
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</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-PrometheusLayer" 
class="impl has-srclink"><a class="srclink rightside" 
href="../../src/opendal/layers/prometheus.rs.html#95-100">source</a><a 
href="#impl-PrometheusLayer" class="anchor">§</a><h3 class="code-header">impl 
<a class="struct" href="stru [...]
-</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-PrometheusLayer" class="impl 
has-srclink"><a class="srclink rightside" 
href="../../src/opendal/layers/prometheus.rs.html#90">source</a><a 
href="#impl-Clone-for-PrometheusLayer" class="anchor"> [...]
+</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-PrometheusLayer" 
class="impl has-srclink"><a class="srclink rightside" 
href="../../src/opendal/layers/prometheus.rs.html#94-99">source</a><a 
href="#impl-PrometheusLayer" class="anchor">§</a><h3 class="code-header">impl 
<a class="struct" href="struc [...]
+</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-PrometheusLayer" class="impl 
has-srclink"><a class="srclink rightside" 
href="../../src/opendal/layers/prometheus.rs.html#89">source</a><a 
href="#impl-Clone-for-PrometheusLayer" class="anchor"> [...]
 </div></details></div></details><details class="toggle 
implementors-toggle"><summary><section id="impl-Instrument-for-PrometheusLayer" 
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-PrometheusLayer" 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 tracin [...]
 <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-PrometheusLayer" class="impl has-srclink"><a 
class="srclink rightside" 
href="https://doc.rust-lang.org/1.68.2/src/core/convert/mod.rs.html#717";>source</a><a
 href="#impl-Into%3CU%3E-for-PrometheusLayer" class="anchor">§</ [...]
diff --git a/docs/rust/opendal/raw/trait.Layer.html 
b/docs/rust/opendal/raw/trait.Layer.html
index 14e39dfb..81dd5715 100644
--- a/docs/rust/opendal/raw/trait.Layer.html
+++ b/docs/rust/opendal/raw/trait.Layer.html
@@ -94,4 +94,4 @@ requires <code>Send</code> and <code>Sync</code>.</p>
 }</code></pre></div>
 </div></details><h2 id="required-associated-types" 
class="small-section-header">Required Associated Types<a 
href="#required-associated-types" class="anchor">§</a></h2><div 
class="methods"><details class="toggle" open><summary><section 
id="associatedtype.LayeredAccessor" class="method has-srclink"><a 
class="srclink rightside" 
href="../../src/opendal/raw/layer.rs.html#129">source</a><h4 
class="code-header">type <a href="#associatedtype.LayeredAccessor" 
class="associatedtype">LayeredAccesso [...]
 </div></details></div><h2 id="required-methods" 
class="small-section-header">Required Methods<a href="#required-methods" 
class="anchor">§</a></h2><div class="methods"><details class="toggle 
method-toggle" open><summary><section id="tymethod.layer" class="method 
has-srclink"><a class="srclink rightside" 
href="../../src/opendal/raw/layer.rs.html#132">source</a><h4 
class="code-header">fn <a href="#tymethod.layer" 
class="fn">layer</a>(&amp;self, inner: A) -&gt; Self::<a class="associatedtype 
[...]
-</div></details></div><h2 id="implementors" 
class="small-section-header">Implementors<a href="#implementors" 
class="anchor">§</a></h2><div id="implementors-list"><details class="toggle 
implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-ChaosLayer" 
class="impl has-srclink"><a class="srclink rightside" 
href="../../src/opendal/layers/chaos.rs.html#83-93">source</a><a 
href="#impl-Layer%3CA%3E-for-ChaosLayer" class="anchor">§</a><h3 
class="code-header">impl&lt;A:&nbsp;<a class=" [...]
\ No newline at end of file
+</div></details></div><h2 id="implementors" 
class="small-section-header">Implementors<a href="#implementors" 
class="anchor">§</a></h2><div id="implementors-list"><details class="toggle 
implementors-toggle"><summary><section id="impl-Layer%3CA%3E-for-ChaosLayer" 
class="impl has-srclink"><a class="srclink rightside" 
href="../../src/opendal/layers/chaos.rs.html#83-93">source</a><a 
href="#impl-Layer%3CA%3E-for-ChaosLayer" class="anchor">§</a><h3 
class="code-header">impl&lt;A:&nbsp;<a class=" [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.Operator.html 
b/docs/rust/opendal/struct.Operator.html
index 71bb0e19..e1ade350 100644
--- a/docs/rust/opendal/struct.Operator.html
+++ b/docs/rust/opendal/struct.Operator.html
@@ -29,7 +29,7 @@
 <span class="kw">let </span>info = op.info();</code></pre></div>
 </div></details><details class="toggle method-toggle" open><summary><section 
id="method.blocking" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#120-122">source</a><h4 
class="code-header">pub fn <a href="#method.blocking" 
class="fn">blocking</a>(&amp;self) -&gt; <a class="struct" 
href="struct.BlockingOperator.html" title="struct 
opendal::BlockingOperator">BlockingOperator</a></h4></section></summary><div 
class="docblock"><p>Cr [...]
 <p>This operation is nearly no cost.</p>
-</div></details></div></details><details class="toggle implementors-toggle" 
open><summary><section id="impl-Operator-1" class="impl has-srclink"><a 
class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#126-1145">source</a><a 
href="#impl-Operator-1" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.Operator.html" title="struct 
opendal::Operator">Operator</a></h3></section></summary><div 
class="docblock"><p>Operator async API.</p>
+</div></details></div></details><details class="toggle implementors-toggle" 
open><summary><section id="impl-Operator-1" class="impl has-srclink"><a 
class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#126-1147">source</a><a 
href="#impl-Operator-1" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.Operator.html" title="struct 
opendal::Operator">Operator</a></h3></section></summary><div 
class="docblock"><p>Operator async API.</p>
 </div><div class="impl-items"><details class="toggle method-toggle" 
open><summary><section id="method.check" class="method has-srclink"><a 
class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#142-149">source</a><h4 
class="code-header">pub async fn <a href="#method.check" 
class="fn">check</a>(&amp;self) -&gt; <a class="type" href="type.Result.html" 
title="type opendal::Result">Result</a>&lt;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive [...]
 <p>We will send a <code>list</code> request to path and return any errors we 
met.</p>
 
@@ -160,7 +160,7 @@ reading data lazily, please use <a 
href="struct.Operator.html#method.range_reade
 </ul>
 <h5 id="examples-8"><a href="#examples-8">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">let </span>bs = op.range_read(<span 
class="string">&quot;path/to/file&quot;</span>, <span 
class="number">1024</span>..<span class="number">2048</span>).<span 
class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.range_read_with" class="method has-srclink"><a class="srclink 
rightside" 
href="../src/opendal/types/operator/operator.rs.html#489-533">source</a><h4 
class="code-header">pub async fn <a href="#method.range_read_with" 
class="fn">range_read_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.ht [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.range_read_with" class="method has-srclink"><a class="srclink 
rightside" 
href="../src/opendal/types/operator/operator.rs.html#491-535">source</a><h4 
class="code-header">pub async fn <a href="#method.range_read_with" 
class="fn">range_read_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.ht [...]
 <p>This function will allocate a new bytes internally. For more precise memory 
control or
 reading data lazily, please use <a 
href="struct.Operator.html#method.range_reader" 
title="Operator::range_reader"><code>Operator::range_reader</code></a></p>
 <h5 id="notes-5"><a href="#notes-5">Notes</a></h5>
@@ -168,23 +168,25 @@ reading data lazily, please use <a 
href="struct.Operator.html#method.range_reade
 <li>The returning content’s length may be smaller than the range 
specified.</li>
 </ul>
 <h5 id="examples-9"><a href="#examples-9">Examples</a></h5>
-<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">let </span>bs = op.range_read_with(<span 
class="string">&quot;path/to/file&quot;</span>, <span 
class="number">1024</span>..<span class="number">2048</span>, 
OpRead::new()).<span class="kw">await</span><span 
class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.reader" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#550-552">source</a><h4 
class="code-header">pub async fn <a href="#method.reader" 
class="fn">reader</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>) -&gt; 
<a class="type" href="type.Result.html" title="type opendal::Re [...]
+<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">let </span>bs = op
+    .range_read_with(<span class="string">&quot;path/to/file&quot;</span>, 
<span class="number">1024</span>..<span class="number">2048</span>, 
OpRead::new())
+    .<span class="kw">await</span><span 
class="question-mark">?</span>;</code></pre></div>
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.reader" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#552-554">source</a><h4 
class="code-header">pub async fn <a href="#method.reader" 
class="fn">reader</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>) -&gt; 
<a class="type" href="type.Result.html" title="type opendal::Re [...]
 <h5 id="examples-10"><a href="#examples-10">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">let </span>r = op.reader(<span 
class="string">&quot;path/to/file&quot;</span>).<span 
class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.range_reader" class="method has-srclink"><a class="srclink 
rightside" 
href="../src/opendal/types/operator/operator.rs.html#572-575">source</a><h4 
class="code-header">pub async fn <a href="#method.range_reader" 
class="fn">range_reader</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</ [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.range_reader" class="method has-srclink"><a class="srclink 
rightside" 
href="../src/opendal/types/operator/operator.rs.html#574-577">source</a><h4 
class="code-header">pub async fn <a href="#method.range_reader" 
class="fn">range_reader</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</ [...]
 <h5 id="notes-6"><a href="#notes-6">Notes</a></h5>
 <ul>
 <li>The returning content’s length may be smaller than the range 
specified.</li>
 </ul>
 <h5 id="examples-11"><a href="#examples-11">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">let </span>r = op.range_reader(<span 
class="string">&quot;path/to/file&quot;</span>, <span 
class="number">1024</span>..<span class="number">2048</span>).<span 
class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.reader_with" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#595-608">source</a><h4 
class="code-header">pub async fn <a href="#method.reader_with" 
class="fn">reader_with</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>, args: 
<a class="struct" href="ops/struct.OpRead.html"  [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.reader_with" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#597-610">source</a><h4 
class="code-header">pub async fn <a href="#method.reader_with" 
class="fn">reader_with</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>, args: 
<a class="struct" href="ops/struct.OpRead.html"  [...]
 <h5 id="examples-12"><a href="#examples-12">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">let </span>r = op
     .reader_with(<span class="string">&quot;path/to/file&quot;</span>, 
OpRead::default().with_range((<span class="number">0</span>..<span 
class="number">10</span>).into()))
     .<span class="kw">await</span><span 
class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.write" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#631-633">source</a><h4 
class="code-header">pub async fn <a href="#method.write" 
class="fn">write</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>, bs: 
impl <a class="trait" href="https://doc.rust-lang.org/1.68.2/core/co [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.write" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#633-635">source</a><h4 
class="code-header">pub async fn <a href="#method.write" 
class="fn">write</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>, bs: 
impl <a class="trait" href="https://doc.rust-lang.org/1.68.2/core/co [...]
 <h5 id="notes-7"><a href="#notes-7">Notes</a></h5>
 <ul>
 <li>Write will make sure all bytes has been written, or an error will be 
returned.</li>
@@ -193,7 +195,7 @@ reading data lazily, please use <a 
href="struct.Operator.html#method.range_reade
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">use </span>bytes::Bytes;
 
 op.write(<span class="string">&quot;path/to/file&quot;</span>, <span 
class="macro">vec!</span>[<span class="number">0</span>; <span 
class="number">4096</span>]).<span class="kw">await</span><span 
class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.copy" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#656-692">source</a><h4 
class="code-header">pub async fn <a href="#method.copy" 
class="fn">copy</a>(&amp;self, from: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>, to: 
&amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/pr [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.copy" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#658-694">source</a><h4 
class="code-header">pub async fn <a href="#method.copy" 
class="fn">copy</a>(&amp;self, from: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>, to: 
&amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/pr [...]
 <h5 id="notes-8"><a href="#notes-8">Notes</a></h5>
 <ul>
 <li><code>from</code> and <code>to</code> must be a file.</li>
@@ -204,7 +206,7 @@ op.write(<span 
class="string">&quot;path/to/file&quot;</span>, <span class="macr
 <h5 id="examples-14"><a href="#examples-14">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code>
 op.copy(<span class="string">&quot;path/to/file&quot;</span>, <span 
class="string">&quot;path/to/file2&quot;</span>).<span 
class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.rename" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#714-750">source</a><h4 
class="code-header">pub async fn <a href="#method.rename" 
class="fn">rename</a>(&amp;self, from: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>, to: 
&amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/ [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.rename" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#716-752">source</a><h4 
class="code-header">pub async fn <a href="#method.rename" 
class="fn">rename</a>(&amp;self, from: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>, to: 
&amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/ [...]
 <h5 id="notes-9"><a href="#notes-9">Notes</a></h5>
 <ul>
 <li><code>from</code> and <code>to</code> must be a file.</li>
@@ -214,7 +216,7 @@ op.copy(<span 
class="string">&quot;path/to/file&quot;</span>, <span class="strin
 <h5 id="examples-15"><a href="#examples-15">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code>
 op.rename(<span class="string">&quot;path/to/file&quot;</span>, <span 
class="string">&quot;path/to/file2&quot;</span>).<span 
class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.writer" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#776-778">source</a><h4 
class="code-header">pub async fn <a href="#method.writer" 
class="fn">writer</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>) -&gt; 
<a class="type" href="type.Result.html" title="type opendal::Re [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.writer" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#778-780">source</a><h4 
class="code-header">pub async fn <a href="#method.writer" 
class="fn">writer</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>) -&gt; 
<a class="type" href="type.Result.html" title="type opendal::Re [...]
 <h5 id="notes-10"><a href="#notes-10">Notes</a></h5>
 <ul>
 <li>Write will make sure all bytes has been written, or an error will be 
returned.</li>
@@ -226,7 +228,7 @@ op.rename(<span 
class="string">&quot;path/to/file&quot;</span>, <span class="str
 w.append(<span class="macro">vec!</span>[<span class="number">0</span>; <span 
class="number">4096</span>]).<span class="kw">await</span><span 
class="question-mark">?</span>;
 w.append(<span class="macro">vec!</span>[<span class="number">1</span>; <span 
class="number">4096</span>]).<span class="kw">await</span><span 
class="question-mark">?</span>;
 w.close().<span class="kw">await</span><span 
class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.writer_with" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#806-819">source</a><h4 
class="code-header">pub async fn <a href="#method.writer_with" 
class="fn">writer_with</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>, args: 
<a class="struct" href="ops/struct.OpWrite.html" [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.writer_with" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#808-821">source</a><h4 
class="code-header">pub async fn <a href="#method.writer_with" 
class="fn">writer_with</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>, args: 
<a class="struct" href="ops/struct.OpWrite.html" [...]
 <h5 id="notes-11"><a href="#notes-11">Notes</a></h5>
 <ul>
 <li>Write will make sure all bytes has been written, or an error will be 
returned.</li>
@@ -240,7 +242,7 @@ w.close().<span class="kw">await</span><span 
class="question-mark">?</span>;</co
 w.append(<span class="macro">vec!</span>[<span class="number">0</span>; <span 
class="number">4096</span>]).<span class="kw">await</span><span 
class="question-mark">?</span>;
 w.append(<span class="macro">vec!</span>[<span class="number">1</span>; <span 
class="number">4096</span>]).<span class="kw">await</span><span 
class="question-mark">?</span>;
 w.close().<span class="kw">await</span><span 
class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.write_with" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#843-860">source</a><h4 
class="code-header">pub async fn <a href="#method.write_with" 
class="fn">write_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>,<br [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.write_with" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#845-862">source</a><h4 
class="code-header">pub async fn <a href="#method.write_with" 
class="fn">write_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>,<br [...]
 <h5 id="notes-12"><a href="#notes-12">Notes</a></h5>
 <ul>
 <li>Write will make sure all bytes has been written, or an error will be 
returned.</li>
@@ -252,20 +254,20 @@ w.close().<span class="kw">await</span><span 
class="question-mark">?</span>;</co
 <span class="kw">let </span>bs = <span class="string">b&quot;hello, 
world!&quot;</span>.to_vec();
 <span class="kw">let </span>args = OpWrite::new().with_content_type(<span 
class="string">&quot;text/plain&quot;</span>);
 <span class="kw">let _ </span>= op.write_with(<span 
class="string">&quot;path/to/file&quot;</span>, args, bs).<span 
class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.delete" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#880-886">source</a><h4 
class="code-header">pub async fn <a href="#method.delete" 
class="fn">delete</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>) -&gt; 
<a class="type" href="type.Result.html" title="type opendal::Re [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.delete" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#882-888">source</a><h4 
class="code-header">pub async fn <a href="#method.delete" 
class="fn">delete</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>) -&gt; 
<a class="type" href="type.Result.html" title="type opendal::Re [...]
 <h5 id="notes-13"><a href="#notes-13">Notes</a></h5>
 <ul>
 <li>Delete not existing error won’t return errors.</li>
 </ul>
 <h5 id="examples-19"><a href="#examples-19">Examples</a></h5>
 <div class="example-wrap"><pre class="rust 
rust-example-rendered"><code>op.delete(<span 
class="string">&quot;test&quot;</span>).<span class="kw">await</span><span 
class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.remove" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#908-910">source</a><h4 
class="code-header">pub async fn <a href="#method.remove" 
class="fn">remove</a>(&amp;self, paths: <a class="struct" 
href="https://doc.rust-lang.org/1.68.2/alloc/vec/struct.Vec.html"; title="struct 
alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.remove" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#910-912">source</a><h4 
class="code-header">pub async fn <a href="#method.remove" 
class="fn">remove</a>(&amp;self, paths: <a class="struct" 
href="https://doc.rust-lang.org/1.68.2/alloc/vec/struct.Vec.html"; title="struct 
alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust [...]
 <p>If underlying services support delete in batch, we will use batch
 delete instead.</p>
 <h5 id="examples-20"><a href="#examples-20">Examples</a></h5>
 <div class="example-wrap"><pre class="rust 
rust-example-rendered"><code>op.remove(<span class="macro">vec!</span>[<span 
class="string">&quot;abc&quot;</span>.to_string(), <span 
class="string">&quot;def&quot;</span>.to_string()])
     .<span class="kw">await</span><span 
class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.remove_via" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#938-967">source</a><h4 
class="code-header">pub async fn <a href="#method.remove_via" 
class="fn">remove_via</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;input:
 impl Stream&lt;Item = <a class="struct" 
href="https://doc.rust-lang.org/1.68.2/alloc/string/struct. [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.remove_via" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#940-969">source</a><h4 
class="code-header">pub async fn <a href="#method.remove_via" 
class="fn">remove_via</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;input:
 impl Stream&lt;Item = <a class="struct" 
href="https://doc.rust-lang.org/1.68.2/alloc/string/struct. [...]
 remove_via will remove files via given stream.</p>
 <p>We will delete by chunks with given batch limit on the stream.</p>
 <h5 id="notes-15"><a href="#notes-15">Notes</a></h5>
@@ -275,13 +277,13 @@ delete instead.</p>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">use </span>futures::stream;
 <span class="kw">let </span>stream = stream::iter(<span 
class="macro">vec!</span>[<span 
class="string">&quot;abc&quot;</span>.to_string(), <span 
class="string">&quot;def&quot;</span>.to_string()]);
 op.remove_via(stream).<span class="kw">await</span><span 
class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.remove_all" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#989-1037">source</a><h4 
class="code-header">pub async fn <a href="#method.remove_all" 
class="fn">remove_all</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>) -&gt; 
<a class="type" href="type.Result.html" title="typ [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.remove_all" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#991-1039">source</a><h4 
class="code-header">pub async fn <a href="#method.remove_all" 
class="fn">remove_all</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>) -&gt; 
<a class="type" href="type.Result.html" title="typ [...]
 <h5 id="notes-16"><a href="#notes-16">Notes</a></h5>
 <p>If underlying services support delete in batch, we will use batch
 delete instead.</p>
 <h5 id="examples-22"><a href="#examples-22">Examples</a></h5>
 <div class="example-wrap"><pre class="rust 
rust-example-rendered"><code>op.remove_all(<span 
class="string">&quot;path/to/dir&quot;</span>).<span 
class="kw">await</span><span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.list" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#1072-1088">source</a><h4 
class="code-header">pub async fn <a href="#method.list" 
class="fn">list</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>) -&gt; 
<a class="type" href="type.Result.html" title="type opendal::Result [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.list" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#1074-1090">source</a><h4 
class="code-header">pub async fn <a href="#method.list" 
class="fn">list</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>) -&gt; 
<a class="type" href="type.Result.html" title="type opendal::Result [...]
 <p>This function will create a new handle to list entries.</p>
 <p>An error will be returned if given path doesn’t end with <code>/</code>.</p>
 <h5 id="examples-23"><a href="#examples-23">Examples</a></h5>
@@ -302,7 +304,7 @@ delete instead.</p>
         EntryMode::Unknown =&gt; <span class="kw">continue</span>,
     }
 }</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.scan" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#1128-1144">source</a><h4 
class="code-header">pub async fn <a href="#method.scan" 
class="fn">scan</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>) -&gt; 
<a class="type" href="type.Result.html" title="type opendal::Result [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.scan" class="method has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#1130-1146">source</a><h4 
class="code-header">pub async fn <a href="#method.scan" 
class="fn">scan</a>(&amp;self, path: &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str</a>) -&gt; 
<a class="type" href="type.Result.html" title="type opendal::Result [...]
 <p>Also, this function can be used to list a prefix.</p>
 <p>An error will be returned if given path doesn’t end with <code>/</code>.</p>
 <h5 id="notes-17"><a href="#notes-17">Notes</a></h5>
@@ -327,8 +329,8 @@ delete instead.</p>
         EntryMode::Unknown =&gt; <span class="kw">continue</span>,
     }
 }</code></pre></div>
-</div></details></div></details><details class="toggle implementors-toggle" 
open><summary><section id="impl-Operator-2" class="impl has-srclink"><a 
class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#1148-1317">source</a><a 
href="#impl-Operator-2" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.Operator.html" title="struct 
opendal::Operator">Operator</a></h3></section></summary><div 
class="docblock"><p>Operator presign API.</p>
-</div><div class="impl-items"><details class="toggle method-toggle" 
open><summary><section id="method.presign_stat" class="method has-srclink"><a 
class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#1170-1177">source</a><h4 
class="code-header">pub async fn <a href="#method.presign_stat" 
class="fn">presign_stat</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive 
[...]
+</div></details></div></details><details class="toggle implementors-toggle" 
open><summary><section id="impl-Operator-2" class="impl has-srclink"><a 
class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#1150-1319">source</a><a 
href="#impl-Operator-2" class="anchor">§</a><h3 class="code-header">impl <a 
class="struct" href="struct.Operator.html" title="struct 
opendal::Operator">Operator</a></h3></section></summary><div 
class="docblock"><p>Operator presign API.</p>
+</div><div class="impl-items"><details class="toggle method-toggle" 
open><summary><section id="method.presign_stat" class="method has-srclink"><a 
class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#1172-1179">source</a><h4 
class="code-header">pub async fn <a href="#method.presign_stat" 
class="fn">presign_stat</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" href="https://doc.rust-lang.org/1.68.2/std/primitive 
[...]
 <h5 id="example-1"><a href="#example-1">Example</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">use </span>anyhow::Result;
 <span class="kw">use </span>futures::io;
@@ -343,7 +345,7 @@ delete instead.</p>
         .uri(signed_req.uri())
         .body(())<span class="question-mark">?</span>;
 </code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.presign_read" class="method has-srclink"><a class="srclink 
rightside" 
href="../src/opendal/types/operator/operator.rs.html#1205-1212">source</a><h4 
class="code-header">pub async fn <a href="#method.presign_read" 
class="fn">presign_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.presign_read" class="method has-srclink"><a class="srclink 
rightside" 
href="../src/opendal/types/operator/operator.rs.html#1207-1214">source</a><h4 
class="code-header">pub async fn <a href="#method.presign_read" 
class="fn">presign_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";>str [...]
 <h5 id="example-2"><a href="#example-2">Example</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">use </span>anyhow::Result;
 <span class="kw">use </span>futures::io;
@@ -360,7 +362,7 @@ delete instead.</p>
 </ul>
 <p>We can download this file via <code>curl</code> or other tools without 
credentials:</p>
 <div class="example-wrap"><pre class="language-shell"><code>curl 
&quot;https://s3.amazonaws.com/examplebucket/test.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&amp;X-Amz-Credential=access_key_id/20130721/us-east-1/s3/aws4_request&amp;X-Amz-Date=20130721T201207Z&amp;X-Amz-Expires=86400&amp;X-Amz-SignedHeaders=host&amp;X-Amz-Signature=&lt;signature-value&gt;&quot;
 -O /tmp/test.txt
-</code></pre></div></div></details><details class="toggle method-toggle" 
open><summary><section id="method.presign_read_with" class="method 
has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#1235-1247">source</a><h4 
class="code-header">pub async fn <a href="#method.presign_read_with" 
class="fn">presign_read_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" href="https://doc.rust-lang.org/ [...]
+</code></pre></div></div></details><details class="toggle method-toggle" 
open><summary><section id="method.presign_read_with" class="method 
has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#1237-1249">source</a><h4 
class="code-header">pub async fn <a href="#method.presign_read_with" 
class="fn">presign_read_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" href="https://doc.rust-lang.org/ [...]
 <p>You can pass <code>OpRead</code> to this method to specify the content 
disposition.</p>
 <h5 id="example-3"><a href="#example-3">Example</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">use </span>anyhow::Result;
@@ -374,7 +376,7 @@ delete instead.</p>
     <span class="kw">let </span>args = OpRead::new()
         .with_override_content_disposition(<span 
class="string">&quot;attachment; 
filename=\&quot;othertext.txt\&quot;&quot;</span>);
     <span class="kw">let </span>signed_req = op.presign_read_with(<span 
class="string">&quot;test.txt&quot;</span>, args, Duration::from_secs(<span 
class="number">3600</span>)).<span class="kw">await</span><span 
class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="toggle method-toggle" open><summary><section 
id="method.presign_write" class="method has-srclink"><a class="srclink 
rightside" 
href="../src/opendal/types/operator/operator.rs.html#1275-1277">source</a><h4 
class="code-header">pub async fn <a href="#method.presign_write" 
class="fn">presign_write</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";> [...]
+</div></details><details class="toggle method-toggle" open><summary><section 
id="method.presign_write" class="method has-srclink"><a class="srclink 
rightside" 
href="../src/opendal/types/operator/operator.rs.html#1277-1279">source</a><h4 
class="code-header">pub async fn <a href="#method.presign_write" 
class="fn">presign_write</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" 
href="https://doc.rust-lang.org/1.68.2/std/primitive.str.html";> [...]
 <h5 id="example-4"><a href="#example-4">Example</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">use </span>anyhow::Result;
 <span class="kw">use </span>futures::io;
@@ -391,7 +393,7 @@ delete instead.</p>
 </ul>
 <p>We can upload file as this file via <code>curl</code> or other tools 
without credential:</p>
 <div class="example-wrap"><pre class="language-shell"><code>curl -X PUT 
&quot;https://s3.amazonaws.com/examplebucket/test.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&amp;X-Amz-Credential=access_key_id/20130721/us-east-1/s3/aws4_request&amp;X-Amz-Date=20130721T201207Z&amp;X-Amz-Expires=86400&amp;X-Amz-SignedHeaders=host&amp;X-Amz-Signature=&lt;signature-value&gt;&quot;
 -d &quot;Hello, World!&quot;
-</code></pre></div></div></details><details class="toggle method-toggle" 
open><summary><section id="method.presign_write_with" class="method 
has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#1304-1316">source</a><h4 
class="code-header">pub async fn <a href="#method.presign_write_with" 
class="fn">presign_write_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" href="https://doc.rust-lang.o [...]
+</code></pre></div></div></details><details class="toggle method-toggle" 
open><summary><section id="method.presign_write_with" class="method 
has-srclink"><a class="srclink rightside" 
href="../src/opendal/types/operator/operator.rs.html#1306-1318">source</a><h4 
class="code-header">pub async fn <a href="#method.presign_write_with" 
class="fn">presign_write_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path:
 &amp;<a class="primitive" href="https://doc.rust-lang.o [...]
 <p>You can pass <code>OpWrite</code> to this method to specify the content 
length and content type.</p>
 <h5 id="example-5"><a href="#example-5">Example</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span 
class="kw">use </span>anyhow::Result;
diff --git a/docs/rust/src/opendal/layers/minitrace.rs.html 
b/docs/rust/src/opendal/layers/minitrace.rs.html
index 1e044948..3fee1af8 100644
--- a/docs/rust/src/opendal/layers/minitrace.rs.html
+++ b/docs/rust/src/opendal/layers/minitrace.rs.html
@@ -405,6 +405,8 @@
 <a href="#405" id="405">405</a>
 <a href="#406" id="406">406</a>
 <a href="#407" id="407">407</a>
+<a href="#408" id="408">408</a>
+<a href="#409" id="409">409</a>
 </pre><pre class="rust"><code><span class="comment">// Licensed to the Apache 
Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -433,7 +435,9 @@
 <span class="kw">use </span>minitrace::prelude::<span class="kw-2">*</span>;
 
 <span class="kw">use </span><span class="kw">crate</span>::ops::<span 
class="kw-2">*</span>;
-<span class="kw">use </span><span 
class="kw">crate</span>::raw::oio::{PageOperation, ReadOperation, 
WriteOperation};
+<span class="kw">use </span><span 
class="kw">crate</span>::raw::oio::PageOperation;
+<span class="kw">use </span><span 
class="kw">crate</span>::raw::oio::ReadOperation;
+<span class="kw">use </span><span 
class="kw">crate</span>::raw::oio::WriteOperation;
 <span class="kw">use </span><span class="kw">crate</span>::raw::<span 
class="kw-2">*</span>;
 <span class="kw">use crate</span>::<span class="kw-2">*</span>;
 
diff --git a/docs/rust/src/opendal/layers/mod.rs.html 
b/docs/rust/src/opendal/layers/mod.rs.html
index 63a2b01b..d3186450 100644
--- a/docs/rust/src/opendal/layers/mod.rs.html
+++ b/docs/rust/src/opendal/layers/mod.rs.html
@@ -73,7 +73,6 @@
 <a href="#73" id="73">73</a>
 <a href="#74" id="74">74</a>
 <a href="#75" id="75">75</a>
-<a href="#76" id="76">76</a>
 </pre><pre class="rust"><code><span class="comment">// Licensed to the Apache 
Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -146,7 +145,6 @@
 <span class="attr">#[cfg(feature = <span 
class="string">&quot;layers-madsim&quot;</span>)]
 #[cfg(madsim)]
 </span><span class="kw">pub use </span><span 
class="self">self</span>::madsim::MadsimLayer;
-
 <span class="attr">#[cfg(feature = <span 
class="string">&quot;layers-madsim&quot;</span>)]
 #[cfg(madsim)]
 </span><span class="kw">pub use </span><span 
class="self">self</span>::madsim::MadsimServer;
diff --git a/docs/rust/src/opendal/layers/prometheus.rs.html 
b/docs/rust/src/opendal/layers/prometheus.rs.html
index 3732e555..63bbac56 100644
--- a/docs/rust/src/opendal/layers/prometheus.rs.html
+++ b/docs/rust/src/opendal/layers/prometheus.rs.html
@@ -792,7 +792,6 @@
 <a href="#792" id="792">792</a>
 <a href="#793" id="793">793</a>
 <a href="#794" id="794">794</a>
-<a href="#795" id="795">795</a>
 </pre><pre class="rust"><code><span class="comment">// Licensed to the Apache 
Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -822,14 +821,14 @@
 <span class="kw">use </span>futures::FutureExt;
 <span class="kw">use </span>futures::TryFutureExt;
 <span class="kw">use </span>log::debug;
-
+<span class="kw">use </span>prometheus::core::AtomicU64;
 <span class="kw">use </span>prometheus::core::GenericCounterVec;
 <span class="kw">use </span>prometheus::exponential_buckets;
 <span class="kw">use </span>prometheus::histogram_opts;
 <span class="kw">use </span>prometheus::register_histogram_vec_with_registry;
 <span class="kw">use </span>prometheus::register_int_counter_vec_with_registry;
+<span class="kw">use </span>prometheus::HistogramVec;
 <span class="kw">use </span>prometheus::Registry;
-<span class="kw">use </span>prometheus::{core::AtomicU64, HistogramVec};
 
 <span class="kw">use </span><span class="kw">crate</span>::ops::<span 
class="kw-2">*</span>;
 <span class="kw">use </span><span class="kw">crate</span>::raw::Accessor;
@@ -842,11 +841,10 @@
 /// ```
 /// use log::debug;
 /// use log::info;
+/// use opendal::layers::PrometheusLayer;
 /// use opendal::services;
 /// use opendal::Operator;
 /// use opendal::Result;
-///
-/// use opendal::layers::PrometheusLayer;
 /// use prometheus::Encoder;
 ///
 /// /// Visit [`opendal::services`] for more service related config.
diff --git a/docs/rust/src/opendal/services/obs/core.rs.html 
b/docs/rust/src/opendal/services/obs/core.rs.html
index 535eda72..d44c6cb9 100644
--- a/docs/rust/src/opendal/services/obs/core.rs.html
+++ b/docs/rust/src/opendal/services/obs/core.rs.html
@@ -243,6 +243,7 @@
 <a href="#243" id="243">243</a>
 <a href="#244" id="244">244</a>
 <a href="#245" id="245">245</a>
+<a href="#246" id="246">246</a>
 </pre><pre class="rust"><code><span class="comment">// Licensed to the Apache 
Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -263,8 +264,6 @@
 </span><span class="kw">use </span>std::fmt::Debug;
 <span class="kw">use </span>std::fmt::Formatter;
 
-<span class="kw">use </span><span class="kw">crate</span>::raw::<span 
class="kw-2">*</span>;
-<span class="kw">use crate</span>::<span class="kw-2">*</span>;
 <span class="kw">use </span>http::header::CONTENT_LENGTH;
 <span class="kw">use </span>http::header::CONTENT_TYPE;
 <span class="kw">use </span>http::header::IF_MATCH;
@@ -274,6 +273,9 @@
 <span class="kw">use </span>reqsign::HuaweicloudObsCredentialLoader;
 <span class="kw">use </span>reqsign::HuaweicloudObsSigner;
 
+<span class="kw">use </span><span class="kw">crate</span>::raw::<span 
class="kw-2">*</span>;
+<span class="kw">use crate</span>::<span class="kw-2">*</span>;
+
 <span class="kw">pub struct </span>ObsCore {
     <span class="kw">pub </span>bucket: String,
     <span class="kw">pub </span>root: String,
diff --git a/docs/rust/src/opendal/services/oss/core.rs.html 
b/docs/rust/src/opendal/services/oss/core.rs.html
index 9091fb72..43f42709 100644
--- a/docs/rust/src/opendal/services/oss/core.rs.html
+++ b/docs/rust/src/opendal/services/oss/core.rs.html
@@ -698,6 +698,7 @@
 <a href="#698" id="698">698</a>
 <a href="#699" id="699">699</a>
 <a href="#700" id="700">700</a>
+<a href="#701" id="701">701</a>
 </pre><pre class="rust"><code><span class="comment">// Licensed to the Apache 
Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -720,11 +721,12 @@
 <span class="kw">use </span>std::time::Duration;
 
 <span class="kw">use </span>bytes::Bytes;
+<span class="kw">use </span>http::header::CACHE_CONTROL;
 <span class="kw">use </span>http::header::CONTENT_DISPOSITION;
 <span class="kw">use </span>http::header::CONTENT_LENGTH;
 <span class="kw">use </span>http::header::CONTENT_TYPE;
+<span class="kw">use </span>http::header::IF_NONE_MATCH;
 <span class="kw">use </span>http::header::RANGE;
-<span class="kw">use </span>http::header::{CACHE_CONTROL, IF_NONE_MATCH};
 <span class="kw">use </span>http::Request;
 <span class="kw">use </span>http::Response;
 <span class="kw">use </span>reqsign::AliyunCredential;
diff --git a/docs/rust/src/opendal/services/s3/core.rs.html 
b/docs/rust/src/opendal/services/s3/core.rs.html
index c18d3534..012f2f2b 100644
--- a/docs/rust/src/opendal/services/s3/core.rs.html
+++ b/docs/rust/src/opendal/services/s3/core.rs.html
@@ -854,6 +854,7 @@
 <a href="#854" id="854">854</a>
 <a href="#855" id="855">855</a>
 <a href="#856" id="856">856</a>
+<a href="#857" id="857">857</a>
 </pre><pre class="rust"><code><span class="comment">// Licensed to the Apache 
Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -880,11 +881,12 @@
 <span class="kw">use </span>backon::ExponentialBuilder;
 <span class="kw">use </span>backon::Retryable;
 <span class="kw">use </span>bytes::Bytes;
+<span class="kw">use </span>http::header::HeaderName;
 <span class="kw">use </span>http::header::CACHE_CONTROL;
 <span class="kw">use </span>http::header::CONTENT_DISPOSITION;
 <span class="kw">use </span>http::header::CONTENT_LENGTH;
 <span class="kw">use </span>http::header::CONTENT_TYPE;
-<span class="kw">use </span>http::header::{HeaderName, IF_NONE_MATCH};
+<span class="kw">use </span>http::header::IF_NONE_MATCH;
 <span class="kw">use </span>http::HeaderValue;
 <span class="kw">use </span>http::Request;
 <span class="kw">use </span>http::Response;
diff --git a/docs/rust/src/opendal/services/webhdfs/pager.rs.html 
b/docs/rust/src/opendal/services/webhdfs/pager.rs.html
index f95af98d..74620aed 100644
--- a/docs/rust/src/opendal/services/webhdfs/pager.rs.html
+++ b/docs/rust/src/opendal/services/webhdfs/pager.rs.html
@@ -73,6 +73,7 @@
 <a href="#73" id="73">73</a>
 <a href="#74" id="74">74</a>
 <a href="#75" id="75">75</a>
+<a href="#76" id="76">76</a>
 </pre><pre class="rust"><code><span class="comment">// Licensed to the Apache 
Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -92,7 +93,8 @@
 
 </span><span class="kw">use </span>async_trait::async_trait;
 
-<span class="kw">use </span><span 
class="kw">super</span>::message::{FileStatus, FileStatusType};
+<span class="kw">use </span><span class="kw">super</span>::message::FileStatus;
+<span class="kw">use </span><span 
class="kw">super</span>::message::FileStatusType;
 <span class="kw">use </span><span class="kw">crate</span>::raw::<span 
class="kw-2">*</span>;
 <span class="kw">use crate</span>::<span class="kw-2">*</span>;
 
diff --git a/docs/rust/src/opendal/types/operator/operator.rs.html 
b/docs/rust/src/opendal/types/operator/operator.rs.html
index 17f1c7eb..0a39f571 100644
--- a/docs/rust/src/opendal/types/operator/operator.rs.html
+++ b/docs/rust/src/opendal/types/operator/operator.rs.html
@@ -1315,6 +1315,8 @@
 <a href="#1315" id="1315">1315</a>
 <a href="#1316" id="1316">1316</a>
 <a href="#1317" id="1317">1317</a>
+<a href="#1318" id="1318">1318</a>
+<a href="#1319" id="1319">1319</a>
 </pre><pre class="rust"><code><span class="comment">// Licensed to the Apache 
Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -1799,7 +1801,9 @@
     /// # use futures::TryStreamExt;
     /// # #[tokio::main]
     /// # async fn test(op: Operator) -&gt; Result&lt;()&gt; {
-    /// let bs = op.range_read_with(&quot;path/to/file&quot;, 1024..2048, 
OpRead::new()).await?;
+    /// let bs = op
+    ///     .range_read_with(&quot;path/to/file&quot;, 1024..2048, 
OpRead::new())
+    ///     .await?;
     /// # Ok(())
     /// # }
     /// ```
diff --git a/docs/vision/index.html b/docs/vision/index.html
index 0800f885..841f6fe4 100644
--- a/docs/vision/index.html
+++ b/docs/vision/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.3.1">
 <title data-rh="true">Vision | 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/vision";><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-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.6f0ed462.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.384e1bab.js" as="script">
 <link rel="preload" href="/assets/js/main.5b9603d6.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.6f0ed462.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.384e1bab.js"></script>
 <script src="/assets/js/main.5b9603d6.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/index.html b/index.html
index 33ef3f91..2e2287f0 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.6f0ed462.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.384e1bab.js" as="script">
 <link rel="preload" href="/assets/js/main.5b9603d6.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.6f0ed462.js"></script>
+<script src="/assets/js/runtime~main.384e1bab.js"></script>
 <script src="/assets/js/main.5b9603d6.js"></script>
 </body>
 </html>
\ No newline at end of file

Reply via email to