You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by gi...@apache.org on 2023/07/31 04:37:35 UTC

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

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 ef8ef52c5 deploy: ad7952fdcfe5ab9ca4b4b921df2df6768a035a80
ef8ef52c5 is described below

commit ef8ef52c523e084c0c1596ece00418d4240d4ed7
Author: Xuanwo <Xu...@users.noreply.github.com>
AuthorDate: Mon Jul 31 04:37:31 2023 +0000

    deploy: ad7952fdcfe5ab9ca4b4b921df2df6768a035a80
---
 404.html                                           |  4 +-
 .../{054cd2fb.a1fd4ca0.js => 054cd2fb.5df284b7.js} |  2 +-
 .../{136e1c50.78bbee94.js => 136e1c50.347df1ab.js} |  2 +-
 .../{1957547a.21d62899.js => 1957547a.65351320.js} |  2 +-
 .../{1db64337.08d32803.js => 1db64337.677a316a.js} |  2 +-
 .../{22d8fa67.f1539da7.js => 22d8fa67.ba3d8eca.js} |  2 +-
 .../{2cbf1097.229f87a2.js => 2cbf1097.fdec6bcc.js} |  2 +-
 .../{434bbc94.2ef6acc9.js => 434bbc94.5f25591c.js} |  2 +-
 .../{57a16c1d.be55d61a.js => 57a16c1d.1e5a93f4.js} |  2 +-
 assets/js/5a65e608.a18fddcb.js                     |  1 -
 assets/js/5a65e608.ff5c57b7.js                     |  1 +
 .../{62a401e9.4e0f900e.js => 62a401e9.3c31a2f9.js} |  2 +-
 assets/js/6eb7fe18.3d90950e.js                     |  1 +
 assets/js/6eb7fe18.a93f6092.js                     |  1 -
 .../{8cc9519e.4ee87c3f.js => 8cc9519e.849d6406.js} |  2 +-
 .../{8f4159f2.f4ba9ba7.js => 8f4159f2.fef171f3.js} |  2 +-
 .../{a0405932.999a11ff.js => a0405932.e7150813.js} |  2 +-
 .../{ab10c306.f9bc5954.js => ab10c306.e0f5cb14.js} |  2 +-
 assets/js/ae4554eb.4fb7cb2a.js                     |  1 +
 assets/js/ae4554eb.d99cbee5.js                     |  1 -
 .../{b56f9725.97216c62.js => b56f9725.3e61ae07.js} |  2 +-
 .../{bb5b2057.70d57ad0.js => bb5b2057.52250c5d.js} |  2 +-
 .../{c6ab695b.4ee58164.js => c6ab695b.148c331c.js} |  2 +-
 .../{cc62039a.824ba30b.js => cc62039a.cecc8be9.js} |  2 +-
 assets/js/d5c31a96.041b7868.js                     |  1 +
 assets/js/d5c31a96.e4433143.js                     |  1 -
 .../{e892cec6.c1a1418f.js => e892cec6.a6f16272.js} |  2 +-
 .../{f1ca5a39.72c0cec3.js => f1ca5a39.bb68ca47.js} |  2 +-
 ...e~main.8808a21b.js => runtime~main.3b88d095.js} |  2 +-
 blog/archive/index.html                            |  4 +-
 blog/index.html                                    |  4 +-
 blog/opendal-access-data-freely/index.html         |  4 +-
 blog/opendal-entered-apache-incubator/index.html   |  4 +-
 blog/tags/announcement/index.html                  |  4 +-
 blog/tags/index.html                               |  4 +-
 docs/category/contributing/index.html              |  4 +-
 docs/category/reference/index.html                 |  4 +-
 docs/category/services/index.html                  |  4 +-
 .../reference/generate_release_note/index.html     |  6 +--
 docs/contributing/reference/setup_gpg/index.html   |  6 +--
 docs/contributing/release/index.html               |  6 +--
 docs/contributing/verify/index.html                |  6 +--
 docs/lua/classes/opendal.metadata.html             |  2 +-
 docs/lua/classes/opendal.operator.html             |  2 +-
 docs/lua/index.html                                |  2 +-
 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                  | 58 +++++++++++-----------
 docs/nodejs/interfaces/PresignedRequest.html       |  8 +--
 docs/overview/index.html                           |  6 +--
 docs/python/opendal.html                           | 40 +++++++--------
 docs/python/search.js                              |  2 +-
 docs/rust/opendal/operator_futures/index.html      |  2 +-
 .../operator_futures/struct.FutureDelete.html      |  6 +--
 .../operator_futures/struct.FutureList.html        | 10 ++--
 .../operator_futures/struct.FuturePresignRead.html | 11 ++--
 .../struct.FuturePresignWrite.html                 | 12 ++---
 .../operator_futures/struct.FutureRead.html        | 17 ++++---
 .../operator_futures/struct.FutureReader.html      | 15 +++---
 .../operator_futures/struct.FutureWrite.html       | 12 ++---
 .../operator_futures/struct.FutureWriter.html      | 12 ++---
 docs/rust/opendal/raw/struct.OpAppend.html         | 18 +++----
 docs/rust/opendal/raw/struct.OpCopy.html           |  6 +--
 docs/rust/opendal/raw/struct.OpRead.html           | 30 +++++------
 docs/rust/opendal/raw/struct.OpRename.html         |  6 +--
 docs/rust/opendal/raw/struct.OpStat.html           | 18 +++----
 docs/rust/opendal/raw/struct.OpWrite.html          | 22 ++++----
 docs/rust/opendal/struct.Capability.html           |  6 ++-
 docs/rust/search-index.js                          |  2 +-
 docs/rust/src/opendal/raw/ops.rs.html              | 24 +++++++++
 docs/rust/src/opendal/services/s3/backend.rs.html  | 36 ++------------
 docs/rust/src/opendal/services/s3/core.rs.html     | 50 ++++++-------------
 docs/rust/src/opendal/types/capability.rs.html     |  4 ++
 .../types/operator/operator_futures.rs.html        | 48 ++++++++++++++++++
 docs/services/azblob/index.html                    |  6 +--
 docs/services/azdfs/index.html                     |  6 +--
 docs/services/cos/index.html                       |  6 +--
 docs/services/dashmap/index.html                   |  6 +--
 docs/services/fs/index.html                        |  6 +--
 docs/services/ftp/index.html                       |  6 +--
 docs/services/hdfs/index.html                      |  6 +--
 docs/services/ipfs/index.html                      |  6 +--
 docs/services/ipmfs/index.html                     |  6 +--
 docs/services/memory/index.html                    |  6 +--
 docs/services/oss/index.html                       |  6 +--
 docs/services/redis/index.html                     |  6 +--
 docs/services/rocksdb/index.html                   |  6 +--
 docs/services/s3/index.html                        |  6 +--
 docs/services/sftp/index.html                      |  6 +--
 docs/services/sled/index.html                      |  6 +--
 docs/services/webhdfs/index.html                   |  6 +--
 docs/vision/index.html                             |  6 +--
 download/index.html                                |  4 +-
 index.html                                         |  4 +-
 96 files changed, 390 insertions(+), 355 deletions(-)

diff --git a/404.html b/404.html
index 349b805f1..959756138 100644
--- a/404.html
+++ b/404.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.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.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/js/054cd2fb.a1fd4ca0.js b/assets/js/054cd2fb.5df284b7.js
similarity index 84%
rename from assets/js/054cd2fb.a1fd4ca0.js
rename to assets/js/054cd2fb.5df284b7.js
index a19e3e008..a45737058 100644
--- a/assets/js/054cd2fb.a1fd4ca0.js
+++ b/assets/js/054cd2fb.5df284b7.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1846],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1846],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/136e1c50.78bbee94.js b/assets/js/136e1c50.347df1ab.js
similarity index 83%
rename from assets/js/136e1c50.78bbee94.js
rename to assets/js/136e1c50.347df1ab.js
index 98acea36f..1e616f0f5 100644
--- a/assets/js/136e1c50.78bbee94.js
+++ b/assets/js/136e1c50.347df1ab.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3057],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3057],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/1957547a.21d62899.js b/assets/js/1957547a.65351320.js
similarity index 86%
rename from assets/js/1957547a.21d62899.js
rename to assets/js/1957547a.65351320.js
index 63b024b33..c112185fa 100644
--- a/assets/js/1957547a.21d62899.js
+++ b/assets/js/1957547a.65351320.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4477],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4477],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/1db64337.08d32803.js b/assets/js/1db64337.677a316a.js
similarity index 50%
rename from assets/js/1db64337.08d32803.js
rename to assets/js/1db64337.677a316a.js
index 89dc43b2c..fa76159eb 100644
--- a/assets/js/1db64337.08d32803.js
+++ b/assets/js/1db64337.677a316a.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1372],{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)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1372],{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)}retu [...]
\ No newline at end of file
diff --git a/assets/js/22d8fa67.f1539da7.js b/assets/js/22d8fa67.ba3d8eca.js
similarity index 85%
rename from assets/js/22d8fa67.f1539da7.js
rename to assets/js/22d8fa67.ba3d8eca.js
index 080a8ae4c..fecec1627 100644
--- a/assets/js/22d8fa67.f1539da7.js
+++ b/assets/js/22d8fa67.ba3d8eca.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4536],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4536],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}retu [...]
\ No newline at end of file
diff --git a/assets/js/2cbf1097.229f87a2.js b/assets/js/2cbf1097.fdec6bcc.js
similarity index 91%
rename from assets/js/2cbf1097.229f87a2.js
rename to assets/js/2cbf1097.fdec6bcc.js
index e1d55493e..6918a81ca 100644
--- a/assets/js/2cbf1097.229f87a2.js
+++ b/assets/js/2cbf1097.fdec6bcc.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2804],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2804],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/434bbc94.2ef6acc9.js b/assets/js/434bbc94.5f25591c.js
similarity index 86%
rename from assets/js/434bbc94.2ef6acc9.js
rename to assets/js/434bbc94.5f25591c.js
index 933df1b6d..30a7721a2 100644
--- a/assets/js/434bbc94.2ef6acc9.js
+++ b/assets/js/434bbc94.5f25591c.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1163],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1163],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/57a16c1d.be55d61a.js b/assets/js/57a16c1d.1e5a93f4.js
similarity index 83%
rename from assets/js/57a16c1d.be55d61a.js
rename to assets/js/57a16c1d.1e5a93f4.js
index 4a5674a15..37d02d72e 100644
--- a/assets/js/57a16c1d.be55d61a.js
+++ b/assets/js/57a16c1d.1e5a93f4.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7757],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>b});var a=n(7294);function r(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 a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7757],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>b});var a=n(7294);function r(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 a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/5a65e608.a18fddcb.js b/assets/js/5a65e608.a18fddcb.js
deleted file mode 100644
index 27586c098..000000000
--- a/assets/js/5a65e608.a18fddcb.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6427],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>m});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/5a65e608.ff5c57b7.js b/assets/js/5a65e608.ff5c57b7.js
new file mode 100644
index 000000000..92d40f7d6
--- /dev/null
+++ b/assets/js/5a65e608.ff5c57b7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6427],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>m});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/62a401e9.4e0f900e.js b/assets/js/62a401e9.3c31a2f9.js
similarity index 84%
rename from assets/js/62a401e9.4e0f900e.js
rename to assets/js/62a401e9.3c31a2f9.js
index b32d0c6de..6273f6288 100644
--- a/assets/js/62a401e9.4e0f900e.js
+++ b/assets/js/62a401e9.3c31a2f9.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6089],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6089],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/6eb7fe18.3d90950e.js b/assets/js/6eb7fe18.3d90950e.js
new file mode 100644
index 000000000..a8ca1b993
--- /dev/null
+++ b/assets/js/6eb7fe18.3d90950e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3922],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/6eb7fe18.a93f6092.js b/assets/js/6eb7fe18.a93f6092.js
deleted file mode 100644
index 54024867e..000000000
--- a/assets/js/6eb7fe18.a93f6092.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3922],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/8cc9519e.4ee87c3f.js b/assets/js/8cc9519e.849d6406.js
similarity index 89%
rename from assets/js/8cc9519e.4ee87c3f.js
rename to assets/js/8cc9519e.849d6406.js
index 0e2b13c2c..d23370ea3 100644
--- a/assets/js/8cc9519e.4ee87c3f.js
+++ b/assets/js/8cc9519e.849d6406.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1652],{3905:(e,t,a)=>{a.d(t,{Zo:()=>o,kt:()=>k});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1652],{3905:(e,t,a)=>{a.d(t,{Zo:()=>o,kt:()=>k});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}retu [...]
\ No newline at end of file
diff --git a/assets/js/8f4159f2.f4ba9ba7.js b/assets/js/8f4159f2.fef171f3.js
similarity index 89%
rename from assets/js/8f4159f2.f4ba9ba7.js
rename to assets/js/8f4159f2.fef171f3.js
index 4d9d69cd8..f0dab0e6c 100644
--- a/assets/js/8f4159f2.f4ba9ba7.js
+++ b/assets/js/8f4159f2.fef171f3.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4719],{3905:(e,t,a)=>{a.d(t,{Zo:()=>o,kt:()=>k});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4719],{3905:(e,t,a)=>{a.d(t,{Zo:()=>o,kt:()=>k});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}retu [...]
\ No newline at end of file
diff --git a/assets/js/a0405932.999a11ff.js b/assets/js/a0405932.e7150813.js
similarity index 84%
rename from assets/js/a0405932.999a11ff.js
rename to assets/js/a0405932.e7150813.js
index e8171b48e..3c0c3b03a 100644
--- a/assets/js/a0405932.999a11ff.js
+++ b/assets/js/a0405932.e7150813.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[716],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retur [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[716],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retur [...]
\ No newline at end of file
diff --git a/assets/js/ab10c306.f9bc5954.js b/assets/js/ab10c306.e0f5cb14.js
similarity index 68%
rename from assets/js/ab10c306.f9bc5954.js
rename to assets/js/ab10c306.e0f5cb14.js
index 55b92eab5..9d094dd82 100644
--- a/assets/js/ab10c306.f9bc5954.js
+++ b/assets/js/ab10c306.e0f5cb14.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[380],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(7294);function a(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 n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}retur [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[380],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>m});var n=r(7294);function a(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 n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}retur [...]
\ No newline at end of file
diff --git a/assets/js/ae4554eb.4fb7cb2a.js b/assets/js/ae4554eb.4fb7cb2a.js
new file mode 100644
index 000000000..c1686284e
--- /dev/null
+++ b/assets/js/ae4554eb.4fb7cb2a.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6983],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(7294);function a(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 n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/ae4554eb.d99cbee5.js b/assets/js/ae4554eb.d99cbee5.js
deleted file mode 100644
index b882611f4..000000000
--- a/assets/js/ae4554eb.d99cbee5.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6983],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(7294);function a(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 n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/b56f9725.97216c62.js b/assets/js/b56f9725.3e61ae07.js
similarity index 84%
rename from assets/js/b56f9725.97216c62.js
rename to assets/js/b56f9725.3e61ae07.js
index 6ab958454..e053b73a1 100644
--- a/assets/js/b56f9725.97216c62.js
+++ b/assets/js/b56f9725.3e61ae07.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[217],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>f});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retur [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[217],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>f});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retur [...]
\ No newline at end of file
diff --git a/assets/js/bb5b2057.70d57ad0.js b/assets/js/bb5b2057.52250c5d.js
similarity index 83%
rename from assets/js/bb5b2057.70d57ad0.js
rename to assets/js/bb5b2057.52250c5d.js
index bdc884d8e..a05f6f3a0 100644
--- a/assets/js/bb5b2057.70d57ad0.js
+++ b/assets/js/bb5b2057.52250c5d.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5214],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5214],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/c6ab695b.4ee58164.js b/assets/js/c6ab695b.148c331c.js
similarity index 85%
rename from assets/js/c6ab695b.4ee58164.js
rename to assets/js/c6ab695b.148c331c.js
index 0d8183b09..40e91c0aa 100644
--- a/assets/js/c6ab695b.4ee58164.js
+++ b/assets/js/c6ab695b.148c331c.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7289],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>b});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7289],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>b});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/cc62039a.824ba30b.js b/assets/js/cc62039a.cecc8be9.js
similarity index 89%
rename from assets/js/cc62039a.824ba30b.js
rename to assets/js/cc62039a.cecc8be9.js
index 970b494d4..1e22bf82a 100644
--- a/assets/js/cc62039a.824ba30b.js
+++ b/assets/js/cc62039a.cecc8be9.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1011],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>k});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1011],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>k});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/d5c31a96.041b7868.js b/assets/js/d5c31a96.041b7868.js
new file mode 100644
index 000000000..858236fca
--- /dev/null
+++ b/assets/js/d5c31a96.041b7868.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2379],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});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)}retu [...]
\ No newline at end of file
diff --git a/assets/js/d5c31a96.e4433143.js b/assets/js/d5c31a96.e4433143.js
deleted file mode 100644
index 7a31485d4..000000000
--- a/assets/js/d5c31a96.e4433143.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2379],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});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)}retu [...]
\ No newline at end of file
diff --git a/assets/js/e892cec6.c1a1418f.js b/assets/js/e892cec6.a6f16272.js
similarity index 86%
rename from assets/js/e892cec6.c1a1418f.js
rename to assets/js/e892cec6.a6f16272.js
index 1f2d53683..96870e0f1 100644
--- a/assets/js/e892cec6.c1a1418f.js
+++ b/assets/js/e892cec6.a6f16272.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3845],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>f});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3845],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>f});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/f1ca5a39.72c0cec3.js b/assets/js/f1ca5a39.bb68ca47.js
similarity index 87%
rename from assets/js/f1ca5a39.72c0cec3.js
rename to assets/js/f1ca5a39.bb68ca47.js
index c25a7b385..a0d8f394b 100644
--- a/assets/js/f1ca5a39.72c0cec3.js
+++ b/assets/js/f1ca5a39.bb68ca47.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4538],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4538],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.8808a21b.js b/assets/js/runtime~main.3b88d095.js
similarity index 85%
rename from assets/js/runtime~main.8808a21b.js
rename to assets/js/runtime~main.3b88d095.js
index e76d4349e..8bf94fc96 100644
--- a/assets/js/runtime~main.8808a21b.js
+++ b/assets/js/runtime~main.3b88d095.js
@@ -1 +1 @@
-(()=>{"use strict";var e,a,t,c,r,f={},d={};function b(e){var a=d[e];if(void 0!==a)return a.exports;var t=d[e]={exports:{}};return f[e].call(t.exports,t,t.exports,b),t.exports}b.m=f,e=[],b.O=(a,t,c,r)=>{if(!t){var f=1/0;for(i=0;i<e.length;i++){t=e[i][0],c=e[i][1],r=e[i][2];for(var d=!0,o=0;o<t.length;o++)(!1&r||f>=r)&&Object.keys(b.O).every((e=>b.O[e](t[o])))?t.splice(o--,1):(d=!1,r<f&&(f=r));if(d){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}r=r||0;for(var i=e.length;i>0&&e[i-1] [...]
\ No newline at end of file
+(()=>{"use strict";var e,a,t,c,r,f={},d={};function b(e){var a=d[e];if(void 0!==a)return a.exports;var t=d[e]={exports:{}};return f[e].call(t.exports,t,t.exports,b),t.exports}b.m=f,e=[],b.O=(a,t,c,r)=>{if(!t){var f=1/0;for(i=0;i<e.length;i++){t=e[i][0],c=e[i][1],r=e[i][2];for(var d=!0,o=0;o<t.length;o++)(!1&r||f>=r)&&Object.keys(b.O).every((e=>b.O[e](t[o])))?t.splice(o--,1):(d=!1,r<f&&(f=r));if(d){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}r=r||0;for(var i=e.length;i>0&&e[i-1] [...]
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
index 357a03464..7fc27e8d9 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.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.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index 4ef8b36e4..8444b232d 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.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.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/opendal-access-data-freely/index.html b/blog/opendal-access-data-freely/index.html
index f5b33b471..6f3e05d83 100644
--- a/blog/opendal-access-data-freely/index.html
+++ b/blog/opendal-access-data-freely/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Apache OpenDAL(Incubating): Access Data Freely | 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-access-data-freely"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><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.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.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 1a19386d5..30cb8f190 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.4.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.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.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 432f2ce88..3b88c9664 100644
--- a/blog/tags/announcement/index.html
+++ b/blog/tags/announcement/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">2 posts 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.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/blog/tags/index.html b/blog/tags/index.html
index b75e71123..dd3fb2adf 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.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.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/category/contributing/index.html b/docs/category/contributing/index.html
index 30cb05dbd..d9f86eccc 100644
--- a/docs/category/contributing/index.html
+++ b/docs/category/contributing/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Contributing | 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/category/contributing"><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="cu [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/category/reference/index.html b/docs/category/reference/index.html
index 689f7a067..08f7db3fb 100644
--- a/docs/category/reference/index.html
+++ b/docs/category/reference/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Reference | 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/category/reference"><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" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/category/services/index.html b/docs/category/services/index.html
index c01738e83..c615294b6 100644
--- a/docs/category/services/index.html
+++ b/docs/category/services/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Services | 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/category/services"><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">< [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/contributing/reference/generate_release_note/index.html b/docs/contributing/reference/generate_release_note/index.html
index c9620fe81..83be61d5c 100644
--- a/docs/contributing/reference/generate_release_note/index.html
+++ b/docs/contributing/reference/generate_release_note/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Generate Release Note | 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/contributing/reference/generate_release_note"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name= [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/contributing/reference/setup_gpg/index.html b/docs/contributing/reference/setup_gpg/index.html
index 7102cd612..ade48ab81 100644
--- a/docs/contributing/reference/setup_gpg/index.html
+++ b/docs/contributing/reference/setup_gpg/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Setup GPG Key | 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/contributing/reference/setup_gpg"><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" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/contributing/release/index.html b/docs/contributing/release/index.html
index aef3dd9c4..933b47a87 100644
--- a/docs/contributing/release/index.html
+++ b/docs/contributing/release/index.html
@@ -5,7 +5,7 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Release | 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/contributing/release"><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" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -14,8 +14,8 @@
 how the release manager releases a new version in accordance with the Apache requirements.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction">​</a></h2><p><code>Source Release</code> is the key point which Apache values, also, is necessary for a release. And OpenDAL will only have source release.</p><p>Please remember that publishing software [...]
 we will abandon that version and prepare for the next one.
 Our release page will only display ASF releases instead of GitHub Releases.</p><blockquote><ul><li><code>opendal_version</code>: the version for opendal, like <code>0.36.0</code>.</li><li><code>release_version</code>: the version for voting, like <code>0.36.0-rc1</code>.</li></ul></blockquote><h3 class="anchor anchorWithStickyNavbar_LWe7" id="create-an-asf-release">Create an ASF Release<a href="#create-an-asf-release" class="hash-link" aria-label="Direct link to Create an ASF Release" ti [...]
-please cancel the release for the current <code>release_version</code>, <em>increase th RC counting</em> and reinitiate a release with the new <code>release_version</code>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="voting">Voting<a href="#voting" class="hash-link" aria-label="Direct link to Voting" title="Direct link to Voting">​</a></h2><p>As an incubating project, OpenDAL requires votes from both the OpenDAL Community and Incubator Community.</p><blockquote><ul><li><code>op [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+please cancel the release for the current <code>release_version</code>, <em>increase th RC counting</em> and reinitiate a release with the new <code>release_version</code>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="voting">Voting<a href="#voting" class="hash-link" aria-label="Direct link to Voting" title="Direct link to Voting">​</a></h2><p>As an incubating project, OpenDAL requires votes from both the OpenDAL Community and Incubator Community.</p><blockquote><ul><li><code>op [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/contributing/verify/index.html b/docs/contributing/verify/index.html
index 87731de5a..68a6fd215 100644
--- a/docs/contributing/verify/index.html
+++ b/docs/contributing/verify/index.html
@@ -5,15 +5,15 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Verify | 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/contributing/verify"><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">< [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
 You can download it directly from <a href="https://raw.githubusercontent.com/apache/incubator-opendal/main/scripts/check.sh" target="_blank" rel="noopener noreferrer">here</a>
-or check it out from the repository:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> clone git@github.com:apache/incuba [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+or check it out from the repository:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> clone git@github.com:apache/incuba [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/lua/classes/opendal.metadata.html b/docs/lua/classes/opendal.metadata.html
index b3c39fd0f..e0cfd387b 100644
--- a/docs/lua/classes/opendal.metadata.html
+++ b/docs/lua/classes/opendal.metadata.html
@@ -138,7 +138,7 @@
 </div> <!-- id="main" -->
 <div id="about">
 <i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2023-07-30 16:31:56 </i>
+<i style="float:right;">Last updated 2023-07-31 04:31:16 </i>
 </div> <!-- id="about" -->
 </div> <!-- id="container" -->
 </body>
diff --git a/docs/lua/classes/opendal.operator.html b/docs/lua/classes/opendal.operator.html
index 68d688b04..3682ba506 100644
--- a/docs/lua/classes/opendal.operator.html
+++ b/docs/lua/classes/opendal.operator.html
@@ -321,7 +321,7 @@
 </div> <!-- id="main" -->
 <div id="about">
 <i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2023-07-30 16:31:56 </i>
+<i style="float:right;">Last updated 2023-07-31 04:31:16 </i>
 </div> <!-- id="about" -->
 </div> <!-- id="container" -->
 </body>
diff --git a/docs/lua/index.html b/docs/lua/index.html
index 44b406395..eeec5ce72 100644
--- a/docs/lua/index.html
+++ b/docs/lua/index.html
@@ -57,7 +57,7 @@
 </div> <!-- id="main" -->
 <div id="about">
 <i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2023-07-30 16:31:56 </i>
+<i style="float:right;">Last updated 2023-07-31 04:31:16 </i>
 </div> <!-- id="about" -->
 </div> <!-- id="container" -->
 </body>
diff --git a/docs/nodejs/classes/BlockingLister.html b/docs/nodejs/classes/BlockingLister.html
index a8c418ca0..99332939d 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/8a01d29/bindings/nodejs/index.d.ts#L434">index.d.ts:434</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L434">index.d.ts:434</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 tsd-kind-class">Entry</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/8a01d29/bindings/nodejs/index.d.ts#L435">index.d.ts:435</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L435">index.d.ts:435</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-sidebar">
 <div class="page-menu">
 <div class="tsd-navigation settings">
diff --git a/docs/nodejs/classes/Entry.html b/docs/nodejs/classes/Entry.html
index 8158d9901..5063e7133 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/8a01d29/bindings/nodejs/index.d.ts#L397">index.d.ts:397</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L397">index.d.ts:397</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/8a01d29/bindings/nodejs/index.d.ts#L399">index.d.ts:399</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L399">index.d.ts:399</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-sidebar">
 <div class="page-menu">
 <div class="tsd-navigation settings">
diff --git a/docs/nodejs/classes/Lister.html b/docs/nodejs/classes/Lister.html
index 64ed89a9b..65d21b806 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/8a01d29/bindings/nodejs/index.d.ts#L423">index.d.ts:423</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L423">index.d.ts:423</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">
@@ -57,7 +57,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 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/8a01d29/bindings/nodejs/index.d.ts#L432">index.d.ts:432</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L432">index.d.ts:432</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-sidebar">
 <div class="page-menu">
 <div class="tsd-navigation settings">
diff --git a/docs/nodejs/classes/Metadata.html b/docs/nodejs/classes/Metadata.html
index fc7b3dfb8..d7e255020 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/8a01d29/bindings/nodejs/index.d.ts#L401">index.d.ts:401</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L401">index.d.ts:401</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/8a01d29/bindings/nodejs/index.d.ts#L407">index.d.ts:407</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L407">index.d.ts:407</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -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/8a01d29/bindings/nodejs/index.d.ts#L409">index.d.ts:409</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L409">index.d.ts:409</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -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/8a01d29/bindings/nodejs/index.d.ts#L411">index.d.ts:411</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L411">index.d.ts:411</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -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/8a01d29/bindings/nodejs/index.d.ts#L413">index.d.ts:413</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L413">index.d.ts:413</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -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/8a01d29/bindings/nodejs/index.d.ts#L415">index.d.ts:415</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L415">index.d.ts:415</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -114,7 +114,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/8a01d29/bindings/nodejs/index.d.ts#L421">index.d.ts:421</a></li></ul></aside></li></ul></section></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L421">index.d.ts:421</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"><a id="isDirectory" class="tsd-anchor"></a>
@@ -126,7 +126,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/8a01d29/bindings/nodejs/index.d.ts#L403">index.d.ts:403</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L403">index.d.ts:403</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -136,7 +136,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/8a01d29/bindings/nodejs/index.d.ts#L405">index.d.ts:405</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L405">index.d.ts:405</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-sidebar">
 <div class="page-menu">
 <div class="tsd-navigation settings">
diff --git a/docs/nodejs/classes/Operator.html b/docs/nodejs/classes/Operator.html
index 7795ede91..e2d5d6f65 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/8a01d29/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/ad7952f/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">
@@ -79,7 +79,7 @@
 <h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <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 tsd-kind-class">Operator</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/8a01d29/bindings/nodejs/index.d.ts#L35">index.d.ts:35</a></li></ul></aside></li></ul></section></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L35">index.d.ts:35</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"><a id="append" class="tsd-anchor"></a>
@@ -104,7 +104,7 @@
 <h5><span class="tsd-kind-parameter">content</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L170">index.d.ts:170</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L170">index.d.ts:170</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><a id="check" class="tsd-anchor"></a>
 <h3 class="tsd-anchor-link"><span>check</span><a href="#check" 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">
@@ -117,7 +117,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/8a01d29/bindings/nodejs/index.d.ts#L78">index.d.ts:78</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L78">index.d.ts:78</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -136,7 +136,7 @@
 <h5><span class="tsd-kind-parameter">to</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L179">index.d.ts:179</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L179">index.d.ts:179</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -155,7 +155,7 @@
 <h5><span class="tsd-kind-parameter">to</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L188">index.d.ts:188</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L188">index.d.ts:188</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -172,7 +172,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L105">index.d.ts:105</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L105">index.d.ts:105</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -189,7 +189,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L114">index.d.ts:114</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L114">index.d.ts:114</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -207,7 +207,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L268">index.d.ts:268</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L268">index.d.ts:268</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -224,7 +224,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L277">index.d.ts:277</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L277">index.d.ts:277</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -241,7 +241,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L87">index.d.ts:87</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L87">index.d.ts:87</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -258,7 +258,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L96">index.d.ts:96</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L96">index.d.ts:96</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -277,7 +277,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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 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/8a01d29/bindings/nodejs/index.d.ts#L324">index.d.ts:324</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L324">index.d.ts:324</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -296,7 +296,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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 tsd-kind-class">BlockingLister</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/8a01d29/bindings/nodejs/index.d.ts#L347">index.d.ts:347</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L347">index.d.ts:347</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -316,7 +316,7 @@
 <h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</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="../interfaces/PresignedRequest.html" class="tsd-signature-type tsd-kind-interface">PresignedRequest</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/8a01d29/bindings/nodejs/index.d.ts#L363">index.d.ts:363</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L363">index.d.ts:363</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -336,7 +336,7 @@
 <h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</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="../interfaces/PresignedRequest.html" class="tsd-signature-type tsd-kind-interface">PresignedRequest</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/8a01d29/bindings/nodejs/index.d.ts#L395">index.d.ts:395</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L395">index.d.ts:395</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -356,7 +356,7 @@
 <h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</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="../interfaces/PresignedRequest.html" class="tsd-signature-type tsd-kind-interface">PresignedRequest</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/8a01d29/bindings/nodejs/index.d.ts#L379">index.d.ts:379</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L379">index.d.ts:379</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -373,7 +373,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L123">index.d.ts:123</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L123">index.d.ts:123</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -390,7 +390,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L132">index.d.ts:132</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L132">index.d.ts:132</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -408,7 +408,7 @@
 <h5><span class="tsd-kind-parameter">paths</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L289">index.d.ts:289</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L289">index.d.ts:289</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -426,7 +426,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L301">index.d.ts:301</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L301">index.d.ts:301</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -446,7 +446,7 @@
 <h5><span class="tsd-kind-parameter">to</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L199">index.d.ts:199</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L199">index.d.ts:199</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -466,7 +466,7 @@
 <h5><span class="tsd-kind-parameter">to</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L210">index.d.ts:210</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L210">index.d.ts:210</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -485,7 +485,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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 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/8a01d29/bindings/nodejs/index.d.ts#L233">index.d.ts:233</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L233">index.d.ts:233</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -504,7 +504,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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 tsd-kind-class">BlockingLister</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/8a01d29/bindings/nodejs/index.d.ts#L256">index.d.ts:256</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L256">index.d.ts:256</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -527,7 +527,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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 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/8a01d29/bindings/nodejs/index.d.ts#L55">index.d.ts:55</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L55">index.d.ts:55</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -544,7 +544,7 @@
 <h5><span class="tsd-kind-parameter">path</span>: <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 tsd-kind-class">Metadata</a></h4><aside class="tsd-sources">
 <ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/8a01d29/bindings/nodejs/index.d.ts#L67">index.d.ts:67</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L67">index.d.ts:67</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -563,7 +563,7 @@
 <h5><span class="tsd-kind-parameter">content</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L143">index.d.ts:143</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L143">index.d.ts:143</a></li></ul></aside></li></ul></section>
 <section class="tsd-panel tsd-member"><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">
@@ -582,7 +582,7 @@
 <h5><span class="tsd-kind-parameter">content</span>: <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/8a01d29/bindings/nodejs/index.d.ts#L154">index.d.ts:154</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/ad7952f/bindings/nodejs/index.d.ts#L154">index.d.ts:154</a></li></ul></aside></li></ul></section></section></div>
 <div class="col-sidebar">
 <div class="page-menu">
 <div class="tsd-navigation settings">
diff --git a/docs/nodejs/interfaces/PresignedRequest.html b/docs/nodejs/interfaces/PresignedRequest.html
index d12cb693e..d614f553e 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/8a01d29/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/ad7952f/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/8a01d29/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/ad7952f/bindings/nodejs/index.d.ts#L31">index.d.ts:31</a></li></ul></aside></section>
 <section class="tsd-panel tsd-member"><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"><span class="tsd-kind-property">method</span><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/8a01d29/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/ad7952f/bindings/nodejs/index.d.ts#L27">index.d.ts:27</a></li></ul></aside></section>
 <section class="tsd-panel tsd-member"><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"><span class="tsd-kind-property">url</span><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/8a01d29/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/ad7952f/bindings/nodejs/index.d.ts#L29">index.d.ts:29</a></li></ul></aside></section></section></div>
 <div class="col-sidebar">
 <div class="page-menu">
 <div class="tsd-navigation settings">
diff --git a/docs/overview/index.html b/docs/overview/index.html
index ae2977fed..13163df7f 100644
--- a/docs/overview/index.html
+++ b/docs/overview/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Overview | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/overview"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/python/opendal.html b/docs/python/opendal.html
index ab8513570..5c3a0b31c 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_type">content_type</a>
+                                <a class="variable" href="#Metadata.etag">etag</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.content_disposition">content_disposition</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Metadata.content_length">content_length</a>
+                                <a class="variable" href="#Metadata.mode">mode</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Metadata.etag">etag</a>
+                                <a class="variable" href="#Metadata.content_length">content_length</a>
                         </li>
                         <li>
                                 <a class="variable" href="#Metadata.content_md5">content_md5</a>
@@ -855,28 +855,28 @@ The default value for whence is <code>SEEK_SET</code>. Values for <code>whence</
     
     
 
-                            <div id="Metadata.content_type" class="classattr">
+                            <div id="Metadata.etag" class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_type</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_type"></a>
+    <a class="headerlink" href="#Metadata.etag"></a>
     
-            <div class="docstring"><p>Content Type of this entry.</p>
+            <div class="docstring"><p>ETag 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>
 
 
@@ -892,28 +892,28 @@ The default value for whence is <code>SEEK_SET</code>. Values for <code>whence</
     
 
                             </div>
-                            <div id="Metadata.content_length" class="classattr">
+                            <div id="Metadata.mode" class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_length</span><span class="annotation">: int</span>
+            <span class="name">mode</span><span class="annotation">: <a href="#EntryMode">opendal.EntryMode</a></span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.content_length"></a>
+    <a class="headerlink" href="#Metadata.mode"></a>
     
-            <div class="docstring"><p>Content length of this entry.</p>
+            <div class="docstring"><p>mode represent this entry's mode.</p>
 </div>
 
 
                             </div>
-                            <div id="Metadata.etag" class="classattr">
+                            <div id="Metadata.content_length" class="classattr">
                                 <div class="attr variable">
-            <span class="name">etag</span><span class="annotation">: Optional[str]</span>
+            <span class="name">content_length</span><span class="annotation">: int</span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.etag"></a>
+    <a class="headerlink" href="#Metadata.content_length"></a>
     
-            <div class="docstring"><p>ETag of this entry.</p>
+            <div class="docstring"><p>Content length of this entry.</p>
 </div>
 
 
diff --git a/docs/python/search.js b/docs/python/search.js
index ee53b9f17..ed80b8f8f 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/operator_futures/index.html b/docs/rust/opendal/operator_futures/index.html
index 5059da490..b313808ce 100644
--- a/docs/rust/opendal/operator_futures/index.html
+++ b/docs/rust/opendal/operator_futures/index.html
@@ -1,3 +1,3 @@
-<!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="Futures provides the futures generated by `Operator`"><title>opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" cross [...]
+<!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="Futures provides the futures generated by `Operator`"><title>opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" cross [...]
 <p>By using futures, users can add more options for operation.</p>
 </div></details><h2 id="structs" class="small-section-header"><a href="#structs">Structs</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.FutureAppend.html" title="struct opendal::operator_futures::FutureAppend">FutureAppend</a></div><div class="desc docblock-short">Future that generated by <a href="../struct.Operator.html#method.append_with" title="method opendal::Operator::append_with"><code>Operator::append_with</code></a>.</div></li><li><div cl [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/operator_futures/struct.FutureDelete.html b/docs/rust/opendal/operator_futures/struct.FutureDelete.html
index 0c7ad91fe..84eab3448 100644
--- a/docs/rust/opendal/operator_futures/struct.FutureDelete.html
+++ b/docs/rust/opendal/operator_futures/struct.FutureDelete.html
@@ -1,7 +1,7 @@
-<!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="Future that generated by `Operator::delete_with`."><title>FutureDelete in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font [...]
+<!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="Future that generated by `Operator::delete_with`."><title>FutureDelete in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font [...]
 <p>Users can add more options by public functions provided by this struct.</p>
-</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-FutureDelete" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#528-534">source</a><a href="#impl-FutureDelete" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct. [...]
-</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-Future-for-FutureDelete" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#536-542">source</a><a href="#impl-Future-for-FutureDelete" class="ancho [...]
+</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-FutureDelete" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#552-558">source</a><a href="#impl-FutureDelete" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct. [...]
+</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-Future-for-FutureDelete" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#560-566">source</a><a href="#impl-Future-for-FutureDelete" class="ancho [...]
 the current task for wakeup if the value is not yet available. <a href="https://doc.rust-lang.org/1.71.0/core/future/future/trait.Future.html#tymethod.poll">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-FutureDelete" class="impl"><a href="#impl-RefUnwindSafe [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
diff --git a/docs/rust/opendal/operator_futures/struct.FutureList.html b/docs/rust/opendal/operator_futures/struct.FutureList.html
index 397831f88..65120ea82 100644
--- a/docs/rust/opendal/operator_futures/struct.FutureList.html
+++ b/docs/rust/opendal/operator_futures/struct.FutureList.html
@@ -1,9 +1,9 @@
-<!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="Future that generated by `Operator::list_with`."><title>FutureList in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/wof [...]
+<!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="Future that generated by `Operator::list_with`."><title>FutureList in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/wof [...]
 <p>Users can add more options by public functions provided by this struct.</p>
-</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-FutureList" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#549-567">source</a><a href="#impl-FutureList" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Futu [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.start_after" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#557-560">source</a><h4 class="code-header">pub fn <a href="#method.start_after" class="fn">start_after</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Change th [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.delimiter" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#563-566">source</a><h4 class="code-header">pub fn <a href="#method.delimiter" class="fn">delimiter</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Change the deli [...]
-</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-Future-for-FutureList" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#569-575">source</a><a href="#impl-Future-for-FutureList" 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-FutureList" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#573-591">source</a><a href="#impl-FutureList" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Futu [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.start_after" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#581-584">source</a><h4 class="code-header">pub fn <a href="#method.start_after" class="fn">start_after</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Change th [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.delimiter" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#587-590">source</a><h4 class="code-header">pub fn <a href="#method.delimiter" class="fn">delimiter</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Change the deli [...]
+</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-Future-for-FutureList" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#593-599">source</a><a href="#impl-Future-for-FutureList" class="anchor">§ [...]
 the current task for wakeup if the value is not yet available. <a href="https://doc.rust-lang.org/1.71.0/core/future/future/trait.Future.html#tymethod.poll">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-FutureList" class="impl"><a href="#impl-RefUnwindSafe-f [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
diff --git a/docs/rust/opendal/operator_futures/struct.FuturePresignRead.html b/docs/rust/opendal/operator_futures/struct.FuturePresignRead.html
index 5c8634962..3d3c72c14 100644
--- a/docs/rust/opendal/operator_futures/struct.FuturePresignRead.html
+++ b/docs/rust/opendal/operator_futures/struct.FuturePresignRead.html
@@ -1,11 +1,12 @@
-<!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="Future that generated by `Operator::presign_read_with`."><title>FuturePresignRead in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" [...]
+<!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="Future that generated by `Operator::presign_read_with`."><title>FuturePresignRead in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" [...]
 <p>Users can add more options by public functions provided by this struct.</p>
-</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-FuturePresignRead" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#231-267">source</a><a href="#impl-FuturePresignRead" class="anchor">§</a><h3 class="code-header">impl <a class="struct" hre [...]
+</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-FuturePresignRead" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#231-275">source</a><a href="#impl-FuturePresignRead" class="anchor">§</a><h3 class="code-header">impl <a class="struct" hre [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.override_content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#239-244">source</a><h4 class="code-header">pub fn <a href="#method.override_content_disposition" class="fn">override_content_disposition</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></s [...]
 </div></details><details class="toggle method-toggle" open><summary><section id="method.override_cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#247-252">source</a><h4 class="code-header">pub fn <a href="#method.override_cache_control" class="fn">override_cache_control</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary>< [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.if_match" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#255-258">source</a><h4 class="code-header">pub fn <a href="#method.if_match" class="fn">if_match</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the If-Match o [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.if_none_match" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#261-266">source</a><h4 class="code-header">pub fn <a href="#method.if_none_match" class="fn">if_none_match</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set [...]
-</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-Future-for-FuturePresignRead" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#269-275">source</a><a href="#impl-Future-for-FuturePresignRead" cl [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.override_content_type" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#255-260">source</a><h4 class="code-header">pub fn <a href="#method.override_content_type" class="fn">override_content_type</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.if_match" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#263-266">source</a><h4 class="code-header">pub fn <a href="#method.if_match" class="fn">if_match</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the If-Match o [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.if_none_match" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#269-274">source</a><h4 class="code-header">pub fn <a href="#method.if_none_match" class="fn">if_none_match</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set [...]
+</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-Future-for-FuturePresignRead" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#277-283">source</a><a href="#impl-Future-for-FuturePresignRead" cl [...]
 the current task for wakeup if the value is not yet available. <a href="https://doc.rust-lang.org/1.71.0/core/future/future/trait.Future.html#tymethod.poll">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-FuturePresignRead" class="impl"><a href="#impl-RefUnwin [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
diff --git a/docs/rust/opendal/operator_futures/struct.FuturePresignWrite.html b/docs/rust/opendal/operator_futures/struct.FuturePresignWrite.html
index a21862f26..5c0f398e3 100644
--- a/docs/rust/opendal/operator_futures/struct.FuturePresignWrite.html
+++ b/docs/rust/opendal/operator_futures/struct.FuturePresignWrite.html
@@ -1,12 +1,12 @@
-<!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="Future that generated by `Operator::presign_read_with`."><title>FuturePresignWrite in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font [...]
+<!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="Future that generated by `Operator::presign_read_with`."><title>FuturePresignWrite in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font [...]
 <p>Users can add more options by public functions provided by this struct.</p>
-</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-FuturePresignWrite" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#282-317">source</a><a href="#impl-FuturePresignWrite" class="anchor">§</a><h3 class="code-header">impl <a class="struct" h [...]
+</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-FuturePresignWrite" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#290-325">source</a><a href="#impl-FuturePresignWrite" class="anchor">§</a><h3 class="code-header">impl <a class="struct" h [...]
 <p>If the content length is not set, the content length will be
 calculated automatically by buffering part of data.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_type" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#295-300">source</a><h4 class="code-header">pub fn <a href="#method.content_type" class="fn">content_type</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set th [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#303-308">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#311-316">source</a><h4 class="code-header">pub fn <a href="#method.cache_control" class="fn">cache_control</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set [...]
-</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-Future-for-FuturePresignWrite" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#319-325">source</a><a href="#impl-Future-for-FuturePresignWrite"  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_type" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#303-308">source</a><h4 class="code-header">pub fn <a href="#method.content_type" class="fn">content_type</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set th [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#311-316">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#319-324">source</a><h4 class="code-header">pub fn <a href="#method.cache_control" class="fn">cache_control</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set [...]
+</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-Future-for-FuturePresignWrite" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#327-333">source</a><a href="#impl-Future-for-FuturePresignWrite"  [...]
 the current task for wakeup if the value is not yet available. <a href="https://doc.rust-lang.org/1.71.0/core/future/future/trait.Future.html#tymethod.poll">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-FuturePresignWrite" class="impl"><a href="#impl-RefUnwi [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
diff --git a/docs/rust/opendal/operator_futures/struct.FutureRead.html b/docs/rust/opendal/operator_futures/struct.FutureRead.html
index a7e899156..5cea59069 100644
--- a/docs/rust/opendal/operator_futures/struct.FutureRead.html
+++ b/docs/rust/opendal/operator_futures/struct.FutureRead.html
@@ -1,12 +1,13 @@
-<!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="Future that generated by `Operator::read_with`."><title>FutureRead in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/wof [...]
+<!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="Future that generated by `Operator::read_with`."><title>FutureRead in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/wof [...]
 <p>Users can add more options by public functions provided by this struct.</p>
-</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-FutureRead" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#332-372">source</a><a href="#impl-FutureRead" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Futu [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.override_content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#340-345">source</a><h4 class="code-header">pub fn <a href="#method.override_content_disposition" class="fn">override_content_disposition</a>(self, content_disposition: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>)  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.override_cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#348-353">source</a><h4 class="code-header">pub fn <a href="#method.override_cache_control" class="fn">override_cache_control</a>(self, cache_control: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.if_match" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#356-359">source</a><h4 class="code-header">pub fn <a href="#method.if_match" class="fn">if_match</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the If-Match f [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.if_none_match" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#362-365">source</a><h4 class="code-header">pub fn <a href="#method.if_none_match" class="fn">if_none_match</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.version" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#368-371">source</a><h4 class="code-header">pub fn <a href="#method.version" class="fn">version</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the version for t [...]
-</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-Future-for-FutureRead" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#374-380">source</a><a href="#impl-Future-for-FutureRead" 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-FutureRead" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#340-388">source</a><a href="#impl-FutureRead" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Futu [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.override_content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#348-353">source</a><h4 class="code-header">pub fn <a href="#method.override_content_disposition" class="fn">override_content_disposition</a>(self, content_disposition: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>)  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.override_cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#356-361">source</a><h4 class="code-header">pub fn <a href="#method.override_cache_control" class="fn">override_cache_control</a>(self, cache_control: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.override_content_type" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#364-369">source</a><h4 class="code-header">pub fn <a href="#method.override_content_type" class="fn">override_content_type</a>(self, content_type: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></s [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.if_match" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#372-375">source</a><h4 class="code-header">pub fn <a href="#method.if_match" class="fn">if_match</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the If-Match f [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.if_none_match" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#378-381">source</a><h4 class="code-header">pub fn <a href="#method.if_none_match" class="fn">if_none_match</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.version" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#384-387">source</a><h4 class="code-header">pub fn <a href="#method.version" class="fn">version</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the version for t [...]
+</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-Future-for-FutureRead" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#390-396">source</a><a href="#impl-Future-for-FutureRead" class="anchor">§ [...]
 the current task for wakeup if the value is not yet available. <a href="https://doc.rust-lang.org/1.71.0/core/future/future/trait.Future.html#tymethod.poll">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-FutureRead" class="impl"><a href="#impl-RefUnwindSafe-f [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
diff --git a/docs/rust/opendal/operator_futures/struct.FutureReader.html b/docs/rust/opendal/operator_futures/struct.FutureReader.html
index 7250c304a..760e633f8 100644
--- a/docs/rust/opendal/operator_futures/struct.FutureReader.html
+++ b/docs/rust/opendal/operator_futures/struct.FutureReader.html
@@ -1,11 +1,12 @@
-<!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="Future that generated by `Operator::reader_with`."><title>FutureReader in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font [...]
+<!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="Future that generated by `Operator::reader_with`."><title>FutureReader in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font [...]
 <p>Users can add more options by public functions provided by this struct.</p>
-</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-FutureReader" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#387-421">source</a><a href="#impl-FutureReader" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct. [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.override_content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#395-400">source</a><h4 class="code-header">pub fn <a href="#method.override_content_disposition" class="fn">override_content_disposition</a>(self, content_disposition: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>)  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.override_cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#403-408">source</a><h4 class="code-header">pub fn <a href="#method.override_cache_control" class="fn">override_cache_control</a>(self, cache_control: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.if_match" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#411-414">source</a><h4 class="code-header">pub fn <a href="#method.if_match" class="fn">if_match</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the If-Match f [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.if_none_match" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#417-420">source</a><h4 class="code-header">pub fn <a href="#method.if_none_match" class="fn">if_none_match</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set [...]
-</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-Future-for-FutureReader" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#423-429">source</a><a href="#impl-Future-for-FutureReader" class="ancho [...]
+</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-FutureReader" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#403-445">source</a><a href="#impl-FutureReader" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.override_content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#411-416">source</a><h4 class="code-header">pub fn <a href="#method.override_content_disposition" class="fn">override_content_disposition</a>(self, content_disposition: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>)  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.override_cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#419-424">source</a><h4 class="code-header">pub fn <a href="#method.override_cache_control" class="fn">override_cache_control</a>(self, cache_control: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.override_content_type" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#427-432">source</a><h4 class="code-header">pub fn <a href="#method.override_content_type" class="fn">override_content_type</a>(self, content_type: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></s [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.if_match" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#435-438">source</a><h4 class="code-header">pub fn <a href="#method.if_match" class="fn">if_match</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the If-Match f [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.if_none_match" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#441-444">source</a><h4 class="code-header">pub fn <a href="#method.if_none_match" class="fn">if_none_match</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set [...]
+</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-Future-for-FutureReader" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#447-453">source</a><a href="#impl-Future-for-FutureReader" class="ancho [...]
 the current task for wakeup if the value is not yet available. <a href="https://doc.rust-lang.org/1.71.0/core/future/future/trait.Future.html#tymethod.poll">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-FutureReader" class="impl"><a href="#impl-RefUnwindSafe [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
diff --git a/docs/rust/opendal/operator_futures/struct.FutureWrite.html b/docs/rust/opendal/operator_futures/struct.FutureWrite.html
index bfb0952fd..78d997e48 100644
--- a/docs/rust/opendal/operator_futures/struct.FutureWrite.html
+++ b/docs/rust/opendal/operator_futures/struct.FutureWrite.html
@@ -1,12 +1,12 @@
-<!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="Future that generated by `Operator::write_with`."><title>FutureWrite in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/w [...]
+<!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="Future that generated by `Operator::write_with`."><title>FutureWrite in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/w [...]
 <p>Users can add more options by public functions provided by this struct.</p>
-</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-FutureWrite" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#436-471">source</a><a href="#impl-FutureWrite" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Fu [...]
+</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-FutureWrite" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#460-495">source</a><a href="#impl-FutureWrite" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Fu [...]
 <p>If the content length is not set, the content length will be
 calculated automatically by buffering part of data.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_type" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#449-454">source</a><h4 class="code-header">pub fn <a href="#method.content_type" class="fn">content_type</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set th [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#457-462">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#465-470">source</a><h4 class="code-header">pub fn <a href="#method.cache_control" class="fn">cache_control</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set [...]
-</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-Future-for-FutureWrite" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#473-479">source</a><a href="#impl-Future-for-FutureWrite" class="anchor" [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_type" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#473-478">source</a><h4 class="code-header">pub fn <a href="#method.content_type" class="fn">content_type</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set th [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#481-486">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#489-494">source</a><h4 class="code-header">pub fn <a href="#method.cache_control" class="fn">cache_control</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set [...]
+</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-Future-for-FutureWrite" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#497-503">source</a><a href="#impl-Future-for-FutureWrite" class="anchor" [...]
 the current task for wakeup if the value is not yet available. <a href="https://doc.rust-lang.org/1.71.0/core/future/future/trait.Future.html#tymethod.poll">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-FutureWrite" class="impl"><a href="#impl-RefUnwindSafe- [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
diff --git a/docs/rust/opendal/operator_futures/struct.FutureWriter.html b/docs/rust/opendal/operator_futures/struct.FutureWriter.html
index e5964f8eb..3a80d14d1 100644
--- a/docs/rust/opendal/operator_futures/struct.FutureWriter.html
+++ b/docs/rust/opendal/operator_futures/struct.FutureWriter.html
@@ -1,12 +1,12 @@
-<!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="Future that generated by `Operator::writer_with`."><title>FutureWriter in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font [...]
+<!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="Future that generated by `Operator::writer_with`."><title>FutureWriter in opendal::operator_futures - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font [...]
 <p>Users can add more options by public functions provided by this struct.</p>
-</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-FutureWriter" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#486-513">source</a><a href="#impl-FutureWriter" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct. [...]
+</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-FutureWriter" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#510-537">source</a><a href="#impl-FutureWriter" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct. [...]
 <p>If the content length is not set, the content length will be
 calculated automatically by buffering part of data.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_type" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#497-500">source</a><h4 class="code-header">pub fn <a href="#method.content_type" class="fn">content_type</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set th [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#503-506">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#509-512">source</a><h4 class="code-header">pub fn <a href="#method.cache_control" class="fn">cache_control</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set [...]
-</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-Future-for-FutureWriter" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#515-521">source</a><a href="#impl-Future-for-FutureWriter" class="ancho [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_type" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#521-524">source</a><h4 class="code-header">pub fn <a href="#method.content_type" class="fn">content_type</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set th [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#527-530">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#533-536">source</a><h4 class="code-header">pub fn <a href="#method.cache_control" class="fn">cache_control</a>(self, v: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set [...]
+</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-Future-for-FutureWriter" class="impl"><a class="srclink rightside" href="../../src/opendal/types/operator/operator_futures.rs.html#539-545">source</a><a href="#impl-Future-for-FutureWriter" class="ancho [...]
 the current task for wakeup if the value is not yet available. <a href="https://doc.rust-lang.org/1.71.0/core/future/future/trait.Future.html#tymethod.poll">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-FutureWriter" class="impl"><a href="#impl-RefUnwindSafe [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
diff --git a/docs/rust/opendal/raw/struct.OpAppend.html b/docs/rust/opendal/raw/struct.OpAppend.html
index 2a17446f3..56fe2f766 100644
--- a/docs/rust/opendal/raw/struct.OpAppend.html
+++ b/docs/rust/opendal/raw/struct.OpAppend.html
@@ -1,12 +1,12 @@
-<!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="Args for `append` operation."><title>OpAppend in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static [...]
-</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-OpAppend" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#447-485">source</a><a href="#impl-OpAppend" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpAppend.html" title="struct ope [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_type" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#454-456">source</a><h4 class="code-header">pub fn <a href="#method.content_type" class="fn">content_type</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rus [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_type" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#459-462">source</a><h4 class="code-header">pub fn <a href="#method.with_content_type" class="fn">with_content_type</a>(self, content_type: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#465-467">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive"  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#470-473">source</a><h4 class="code-header">pub fn <a href="#method.with_content_disposition" class="fn">with_content_disposition</a>(self, content_disposition: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary>< [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#476-478">source</a><h4 class="code-header">pub fn <a href="#method.cache_control" class="fn">cache_control</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc. [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#481-484">source</a><h4 class="code-header">pub fn <a href="#method.with_cache_control" class="fn">with_cache_control</a>(self, cache_control: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p> [...]
-</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-OpAppend" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#440">source</a><a href="#impl-Clone-for-OpAppend" class="anchor">§</a><h3 class="code-header">impl < [...]
+<!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="Args for `append` operation."><title>OpAppend in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static [...]
+</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-OpAppend" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#459-497">source</a><a href="#impl-OpAppend" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpAppend.html" title="struct ope [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_type" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#466-468">source</a><h4 class="code-header">pub fn <a href="#method.content_type" class="fn">content_type</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rus [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_type" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#471-474">source</a><h4 class="code-header">pub fn <a href="#method.with_content_type" class="fn">with_content_type</a>(self, content_type: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#477-479">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive"  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#482-485">source</a><h4 class="code-header">pub fn <a href="#method.with_content_disposition" class="fn">with_content_disposition</a>(self, content_disposition: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary>< [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#488-490">source</a><h4 class="code-header">pub fn <a href="#method.cache_control" class="fn">cache_control</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#493-496">source</a><h4 class="code-header">pub fn <a href="#method.with_cache_control" class="fn">with_cache_control</a>(self, cache_control: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p> [...]
+</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-OpAppend" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#452">source</a><a href="#impl-Clone-for-OpAppend" class="anchor">§</a><h3 class="code-header">impl < [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a hr [...]
diff --git a/docs/rust/opendal/raw/struct.OpCopy.html b/docs/rust/opendal/raw/struct.OpCopy.html
index b5e2ba864..0753683df 100644
--- a/docs/rust/opendal/raw/struct.OpCopy.html
+++ b/docs/rust/opendal/raw/struct.OpCopy.html
@@ -1,6 +1,6 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `copy` operation."><title>OpCopy in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.fil [...]
-</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-OpCopy" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#491-496">source</a><a href="#impl-OpCopy" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpCopy.html" title="struct opendal:: [...]
-</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-OpCopy" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#488">source</a><a href="#impl-Clone-for-OpCopy" class="anchor">§</a><h3 class="code-header">impl <a cl [...]
+<!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="Args for `copy` operation."><title>OpCopy in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.fil [...]
+</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-OpCopy" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#503-508">source</a><a href="#impl-OpCopy" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpCopy.html" title="struct opendal:: [...]
+</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-OpCopy" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#500">source</a><a href="#impl-Clone-for-OpCopy" class="anchor">§</a><h3 class="code-header">impl <a cl [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a hr [...]
diff --git a/docs/rust/opendal/raw/struct.OpRead.html b/docs/rust/opendal/raw/struct.OpRead.html
index f07b06f87..349f60daf 100644
--- a/docs/rust/opendal/raw/struct.OpRead.html
+++ b/docs/rust/opendal/raw/struct.OpRead.html
@@ -1,21 +1,23 @@
-<!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="Args for `read` operation."><title>OpRead in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.fil [...]
-</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-OpRead" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#250-322">source</a><a href="#impl-OpRead" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpRead.html" title="struct opendal:: [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_range" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#257-260">source</a><h4 class="code-header">pub fn <a href="#method.with_range" class="fn">with_range</a>(self, range: <a class="struct" href="struct.BytesRange.html" title="struct opendal::raw::BytesRange">BytesRange</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Create a new OpRead with r [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.range" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#263-265">source</a><h4 class="code-header">pub fn <a href="#method.range" class="fn">range</a>(&amp;self) -&gt; <a class="struct" href="struct.BytesRange.html" title="struct opendal::raw::BytesRange">BytesRange</a></h4></section></summary><div class="docblock"><p>Get range from OpRead.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_override_content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#268-271">source</a><h4 class="code-header">pub fn <a href="#method.with_override_content_disposition" class="fn">with_override_content_disposition</a>(
+<!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="Args for `read` operation."><title>OpRead in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.fil [...]
+</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-OpRead" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#251-334">source</a><a href="#impl-OpRead" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpRead.html" title="struct opendal:: [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_range" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#258-261">source</a><h4 class="code-header">pub fn <a href="#method.with_range" class="fn">with_range</a>(self, range: <a class="struct" href="struct.BytesRange.html" title="struct opendal::raw::BytesRange">BytesRange</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Create a new OpRead with r [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.range" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#264-266">source</a><h4 class="code-header">pub fn <a href="#method.range" class="fn">range</a>(&amp;self) -&gt; <a class="struct" href="struct.BytesRange.html" title="struct opendal::raw::BytesRange">BytesRange</a></h4></section></summary><div class="docblock"><p>Get range from OpRead.</p>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_override_content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#269-272">source</a><h4 class="code-header">pub fn <a href="#method.with_override_content_disposition" class="fn">with_override_content_disposition</a>(
     self,
     content_disposition: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>
 ) -&gt; Self</h4></section></summary><div class="docblock"><p>Sets the content-disposition header that should be send back by the remote read operation.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.override_content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#275-277">source</a><h4 class="code-header">pub fn <a href="#method.override_content_disposition" class="fn">override_content_disposition</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.override_content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#276-278">source</a><h4 class="code-header">pub fn <a href="#method.override_content_disposition" class="fn">override_content_disposition</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt [...]
 operation.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_override_cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#280-283">source</a><h4 class="code-header">pub fn <a href="#method.with_override_cache_control" class="fn">with_override_cache_control</a>(self, cache_control: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summar [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.override_cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#286-288">source</a><h4 class="code-header">pub fn <a href="#method.override_cache_control" class="fn">override_cache_control</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="pr [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_if_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#291-294">source</a><h4 class="code-header">pub fn <a href="#method.with_if_match" class="fn">with_if_match</a>(self, if_match: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the If-Match of  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.if_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#297-299">source</a><h4 class="code-header">pub fn <a href="#method.if_match" class="fn">if_match</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1 [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_if_none_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#302-305">source</a><h4 class="code-header">pub fn <a href="#method.with_if_none_match" class="fn">with_if_none_match</a>(self, if_none_match: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p> [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.if_none_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#308-310">source</a><h4 class="code-header">pub fn <a href="#method.if_none_match" class="fn">if_none_match</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc. [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_version" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#313-316">source</a><h4 class="code-header">pub fn <a href="#method.with_version" class="fn">with_version</a>(self, version: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the version of the o [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.version" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#319-321">source</a><h4 class="code-header">pub fn <a href="#method.version" class="fn">version</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.71 [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_override_cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#281-284">source</a><h4 class="code-header">pub fn <a href="#method.with_override_cache_control" class="fn">with_override_cache_control</a>(self, cache_control: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summar [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.override_cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#287-289">source</a><h4 class="code-header">pub fn <a href="#method.override_cache_control" class="fn">override_cache_control</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="pr [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_override_content_type" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#292-295">source</a><h4 class="code-header">pub fn <a href="#method.with_override_content_type" class="fn">with_override_content_type</a>(self, content_type: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><d [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.override_content_type" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#298-300">source</a><h4 class="code-header">pub fn <a href="#method.override_content_type" class="fn">override_content_type</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primi [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_if_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#303-306">source</a><h4 class="code-header">pub fn <a href="#method.with_if_match" class="fn">with_if_match</a>(self, if_match: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the If-Match of  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.if_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#309-311">source</a><h4 class="code-header">pub fn <a href="#method.if_match" class="fn">if_match</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1 [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_if_none_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#314-317">source</a><h4 class="code-header">pub fn <a href="#method.with_if_none_match" class="fn">with_if_none_match</a>(self, if_none_match: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p> [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.if_none_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#320-322">source</a><h4 class="code-header">pub fn <a href="#method.if_none_match" class="fn">if_none_match</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_version" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#325-328">source</a><h4 class="code-header">pub fn <a href="#method.with_version" class="fn">with_version</a>(self, version: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the version of the o [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.version" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#331-333">source</a><h4 class="code-header">pub fn <a href="#method.version" class="fn">version</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.71 [...]
 </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-OpRead" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#240">source</a><a href="#impl-Clone-for-OpRead" class="anchor">§</a><h3 class="code-header">impl <a cl [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
diff --git a/docs/rust/opendal/raw/struct.OpRename.html b/docs/rust/opendal/raw/struct.OpRename.html
index 024613a41..570f6a777 100644
--- a/docs/rust/opendal/raw/struct.OpRename.html
+++ b/docs/rust/opendal/raw/struct.OpRename.html
@@ -1,6 +1,6 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Args for `rename` operation."><title>OpRename in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static [...]
-</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-OpRename" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#502-507">source</a><a href="#impl-OpRename" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpRename.html" title="struct ope [...]
-</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-OpRename" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#499">source</a><a href="#impl-Clone-for-OpRename" class="anchor">§</a><h3 class="code-header">impl < [...]
+<!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="Args for `rename` operation."><title>OpRename in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static [...]
+</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-OpRename" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#514-519">source</a><a href="#impl-OpRename" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpRename.html" title="struct ope [...]
+</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-OpRename" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#511">source</a><a href="#impl-Clone-for-OpRename" class="anchor">§</a><h3 class="code-header">impl < [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a hr [...]
diff --git a/docs/rust/opendal/raw/struct.OpStat.html b/docs/rust/opendal/raw/struct.OpStat.html
index 02091e1fc..1f9ba758f 100644
--- a/docs/rust/opendal/raw/struct.OpStat.html
+++ b/docs/rust/opendal/raw/struct.OpStat.html
@@ -1,12 +1,12 @@
-<!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="Args for `stat` operation."><title>OpStat in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.fil [...]
-</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-OpStat" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#332-370">source</a><a href="#impl-OpStat" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpStat.html" title="struct opendal:: [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_if_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#339-342">source</a><h4 class="code-header">pub fn <a href="#method.with_if_match" class="fn">with_if_match</a>(self, if_match: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the If-Match of  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.if_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#345-347">source</a><h4 class="code-header">pub fn <a href="#method.if_match" class="fn">if_match</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1 [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_if_none_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#350-353">source</a><h4 class="code-header">pub fn <a href="#method.with_if_none_match" class="fn">with_if_none_match</a>(self, if_none_match: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p> [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.if_none_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#356-358">source</a><h4 class="code-header">pub fn <a href="#method.if_none_match" class="fn">if_none_match</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc. [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_version" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#361-364">source</a><h4 class="code-header">pub fn <a href="#method.with_version" class="fn">with_version</a>(self, version: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the version of the o [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.version" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#367-369">source</a><h4 class="code-header">pub fn <a href="#method.version" class="fn">version</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.71 [...]
-</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-OpStat" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#325">source</a><a href="#impl-Clone-for-OpStat" class="anchor">§</a><h3 class="code-header">impl <a cl [...]
+<!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="Args for `stat` operation."><title>OpStat in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.fil [...]
+</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-OpStat" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#344-382">source</a><a href="#impl-OpStat" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpStat.html" title="struct opendal:: [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_if_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#351-354">source</a><h4 class="code-header">pub fn <a href="#method.with_if_match" class="fn">with_if_match</a>(self, if_match: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the If-Match of  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.if_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#357-359">source</a><h4 class="code-header">pub fn <a href="#method.if_match" class="fn">if_match</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1 [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_if_none_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#362-365">source</a><h4 class="code-header">pub fn <a href="#method.with_if_none_match" class="fn">with_if_none_match</a>(self, if_none_match: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p> [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.if_none_match" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#368-370">source</a><h4 class="code-header">pub fn <a href="#method.if_none_match" class="fn">if_none_match</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_version" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#373-376">source</a><h4 class="code-header">pub fn <a href="#method.with_version" class="fn">with_version</a>(self, version: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set the version of the o [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.version" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#379-381">source</a><h4 class="code-header">pub fn <a href="#method.version" class="fn">version</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rust-lang.org/1.71 [...]
+</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-OpStat" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#337">source</a><a href="#impl-Clone-for-OpStat" class="anchor">§</a><h3 class="code-header">impl <a cl [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a hr [...]
diff --git a/docs/rust/opendal/raw/struct.OpWrite.html b/docs/rust/opendal/raw/struct.OpWrite.html
index 9b739183c..f2eb4f856 100644
--- a/docs/rust/opendal/raw/struct.OpWrite.html
+++ b/docs/rust/opendal/raw/struct.OpWrite.html
@@ -1,18 +1,18 @@
-<!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="Args for `write` operation."><title>OpWrite in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.f [...]
-</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-OpWrite" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#381-437">source</a><a href="#impl-OpWrite" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpWrite.html" title="struct openda [...]
+<!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="Args for `write` operation."><title>OpWrite in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.f [...]
+</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-OpWrite" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#393-449">source</a><a href="#impl-OpWrite" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpWrite.html" title="struct openda [...]
 <p>If input path is not a file path, an error will be returned.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_length" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#392-394">source</a><h4 class="code-header">pub fn <a href="#method.content_length" class="fn">content_length</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.ru [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_length" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#404-406">source</a><h4 class="code-header">pub fn <a href="#method.content_length" class="fn">content_length</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.ru [...]
 <p>The content length is the total length of the data to be written.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_length" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#400-403">source</a><h4 class="code-header">pub fn <a href="#method.with_content_length" class="fn">with_content_length</a>(self, content_length: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.u64.html">u64</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>S [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_length" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#412-415">source</a><h4 class="code-header">pub fn <a href="#method.with_content_length" class="fn">with_content_length</a>(self, content_length: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.u64.html">u64</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>S [...]
 <p>If the content length is not set, the content length will be
 calculated automatically by buffering part of data.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_type" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#406-408">source</a><h4 class="code-header">pub fn <a href="#method.content_type" class="fn">content_type</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rus [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_type" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#411-414">source</a><h4 class="code-header">pub fn <a href="#method.with_content_type" class="fn">with_content_type</a>(self, content_type: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#417-419">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive"  [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#422-425">source</a><h4 class="code-header">pub fn <a href="#method.with_content_disposition" class="fn">with_content_disposition</a>(self, content_disposition: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary>< [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#428-430">source</a><h4 class="code-header">pub fn <a href="#method.cache_control" class="fn">cache_control</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc. [...]
-</div></details><details class="toggle method-toggle" open><summary><section id="method.with_cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#433-436">source</a><h4 class="code-header">pub fn <a href="#method.with_cache_control" class="fn">with_cache_control</a>(self, cache_control: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p> [...]
-</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-OpWrite" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#373">source</a><a href="#impl-Clone-for-OpWrite" class="anchor">§</a><h3 class="code-header">impl <a  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_type" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#418-420">source</a><h4 class="code-header">pub fn <a href="#method.content_type" class="fn">content_type</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc.rus [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_type" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#423-426">source</a><h4 class="code-header">pub fn <a href="#method.with_content_type" class="fn">with_content_type</a>(self, content_type: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Set  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#429-431">source</a><h4 class="code-header">pub fn <a href="#method.content_disposition" class="fn">content_disposition</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive"  [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_content_disposition" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#434-437">source</a><h4 class="code-header">pub fn <a href="#method.with_content_disposition" class="fn">with_content_disposition</a>(self, content_disposition: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary>< [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#440-442">source</a><h4 class="code-header">pub fn <a href="#method.cache_control" class="fn">cache_control</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="primitive" href="https://doc. [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.with_cache_control" class="method"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#445-448">source</a><h4 class="code-header">pub fn <a href="#method.with_cache_control" class="fn">with_cache_control</a>(self, cache_control: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p> [...]
+</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-OpWrite" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#385">source</a><a href="#impl-Clone-for-OpWrite" class="anchor">§</a><h3 class="code-header">impl <a  [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a hr [...]
diff --git a/docs/rust/opendal/struct.Capability.html b/docs/rust/opendal/struct.Capability.html
index 251d328c1..5e0e8de2e 100644
--- a/docs/rust/opendal/struct.Capability.html
+++ b/docs/rust/opendal/struct.Capability.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="Capability is used to describe what operations are supported by current Operator."><title>Capability in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" t [...]
+<!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="Capability is used to describe what operations are supported by current Operator."><title>Capability in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" t [...]
     pub stat: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a>,
     pub stat_with_if_match: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a>,
     pub stat_with_if_none_match: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a>,
@@ -10,6 +10,7 @@
     pub read_with_if_none_match: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a>,
     pub read_with_override_cache_control: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a>,
     pub read_with_override_content_disposition: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a>,
+    pub read_with_override_content_type: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a>,
     pub write: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a>,
     pub write_can_sink: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a>,
     pub write_without_content_length: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a>,
@@ -73,6 +74,7 @@ be true.</p>
 </div><span id="structfield.read_with_if_none_match" class="structfield small-section-header"><a href="#structfield.read_with_if_none_match" class="anchor field">§</a><code>read_with_if_none_match: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>If operator supports read with if none match natively, it will be true.</p>
 </div><span id="structfield.read_with_override_cache_control" class="structfield small-section-header"><a href="#structfield.read_with_override_cache_control" class="anchor field">§</a><code>read_with_override_cache_control: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>if operator supports read with override cache control natively, it will be true.</p>
 </div><span id="structfield.read_with_override_content_disposition" class="structfield small-section-header"><a href="#structfield.read_with_override_content_disposition" class="anchor field">§</a><code>read_with_override_content_disposition: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>if operator supports read with override content disposition natively, it will be true.</p>
+</div><span id="structfield.read_with_override_content_type" class="structfield small-section-header"><a href="#structfield.read_with_override_content_type" class="anchor field">§</a><code>read_with_override_content_type: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>if operator supports read with override content type natively, it will be true.</p>
 </div><span id="structfield.write" class="structfield small-section-header"><a href="#structfield.write" class="anchor field">§</a><code>write: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>If operator supports write natively, it will be true.</p>
 </div><span id="structfield.write_can_sink" class="structfield small-section-header"><a href="#structfield.write_can_sink" class="anchor field">§</a><code>write_can_sink: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>If operator supports write by sink a stream into, it will be true.</p>
 </div><span id="structfield.write_without_content_length" class="structfield small-section-header"><a href="#structfield.write_without_content_length" class="anchor field">§</a><code>write_without_content_length: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>If operator supports write with without content length, it will
@@ -102,7 +104,7 @@ be true.</p>
 </div><span id="structfield.batch_delete" class="structfield small-section-header"><a href="#structfield.batch_delete" class="anchor field">§</a><code>batch_delete: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>If operator supports batch delete natively, it will be true.</p>
 </div><span id="structfield.batch_max_operations" class="structfield small-section-header"><a href="#structfield.batch_max_operations" class="anchor field">§</a><code>batch_max_operations: <a class="enum" href="https://doc.rust-lang.org/1.71.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.usize.html">usize</a>&gt;</code></span><div class="docblock"><p>The max operations that operator [...]
 </div><span id="structfield.blocking" class="structfield small-section-header"><a href="#structfield.blocking" class="anchor field">§</a><code>blocking: <a class="primitive" href="https://doc.rust-lang.org/1.71.0/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>If operator supports blocking natively, it will be true.</p>
-</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-Capability" class="impl"><a class="srclink rightside" href="../src/opendal/types/capability.rs.html#47">source</a><a href="#impl-Clone-for-Capability" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="h [...]
+</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-Capability" class="impl"><a class="srclink rightside" href="../src/opendal/types/capability.rs.html#47">source</a><a href="#impl-Clone-for-Capability" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="h [...]
     T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
     T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.0/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a hr [...]
diff --git a/docs/rust/search-index.js b/docs/rust/search-index.js
index deb936572..4a3f61ab6 100644
--- a/docs/rust/search-index.js
+++ b/docs/rust/search-index.js
@@ -1,5 +1,5 @@
 var searchIndex = JSON.parse('{\
-"opendal":{"doc":"OpenDAL is the Open Data Access Layer to <strong>freely</strong> access …","t":"QNDNNDDDDINNDNNNNNNNNNNNNNNNDEDENNNNNNNNNNNNNNNNDNNDENNNNNNNDDDNNNNDNNGNNSENNNNNNNNNNNNDLLLMLMMMLLMMMLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLMLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLL [...]
+"opendal":{"doc":"OpenDAL is the Open Data Access Layer to <strong>freely</strong> access …","t":"QNDNNDDDDINNDNNNNNNNNNNNNNNNDEDENNNNNNNNNNNNNNNNDNNDENNNNNNNDDDNNNNDNNGNNSENNNNNNNNNNNNDLLLMLMMMLLMMMLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLMLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLL [...]
 }');
 if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)};
 if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex};
diff --git a/docs/rust/src/opendal/raw/ops.rs.html b/docs/rust/src/opendal/raw/ops.rs.html
index f360d0c26..1a06781c2 100644
--- a/docs/rust/src/opendal/raw/ops.rs.html
+++ b/docs/rust/src/opendal/raw/ops.rs.html
@@ -505,6 +505,18 @@
 <a href="#505" id="505">505</a>
 <a href="#506" id="506">506</a>
 <a href="#507" id="507">507</a>
+<a href="#508" id="508">508</a>
+<a href="#509" id="509">509</a>
+<a href="#510" id="510">510</a>
+<a href="#511" id="511">511</a>
+<a href="#512" id="512">512</a>
+<a href="#513" id="513">513</a>
+<a href="#514" id="514">514</a>
+<a href="#515" id="515">515</a>
+<a href="#516" id="516">516</a>
+<a href="#517" id="517">517</a>
+<a href="#518" id="518">518</a>
+<a href="#519" id="519">519</a>
 </pre></div><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
@@ -749,6 +761,7 @@
     br: BytesRange,
     if_match: <span class="prelude-ty">Option</span>&lt;String&gt;,
     if_none_match: <span class="prelude-ty">Option</span>&lt;String&gt;,
+    override_content_type: <span class="prelude-ty">Option</span>&lt;String&gt;,
     override_cache_control: <span class="prelude-ty">Option</span>&lt;String&gt;,
     override_content_disposition: <span class="prelude-ty">Option</span>&lt;String&gt;,
     version: <span class="prelude-ty">Option</span>&lt;String&gt;,
@@ -794,6 +807,17 @@
         <span class="self">self</span>.override_cache_control.as_deref()
     }
 
+    <span class="doccomment">/// Sets the content-type header that should be send back by the remote read operation.
+    </span><span class="kw">pub fn </span>with_override_content_type(<span class="kw-2">mut </span><span class="self">self</span>, content_type: <span class="kw-2">&amp;</span>str) -&gt; <span class="self">Self </span>{
+        <span class="self">self</span>.override_content_type = <span class="prelude-val">Some</span>(content_type.into());
+        <span class="self">self
+    </span>}
+
+    <span class="doccomment">/// Returns the content-type header that should be send back by the remote read operation.
+    </span><span class="kw">pub fn </span>override_content_type(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>str&gt; {
+        <span class="self">self</span>.override_content_type.as_deref()
+    }
+
     <span class="doccomment">/// Set the If-Match of the option
     </span><span class="kw">pub fn </span>with_if_match(<span class="kw-2">mut </span><span class="self">self</span>, if_match: <span class="kw-2">&amp;</span>str) -&gt; <span class="self">Self </span>{
         <span class="self">self</span>.if_match = <span class="prelude-val">Some</span>(if_match.to_string());
diff --git a/docs/rust/src/opendal/services/s3/backend.rs.html b/docs/rust/src/opendal/services/s3/backend.rs.html
index 6fcf04eaa..8b189c631 100644
--- a/docs/rust/src/opendal/services/s3/backend.rs.html
+++ b/docs/rust/src/opendal/services/s3/backend.rs.html
@@ -1237,21 +1237,6 @@
 <a href="#1237" id="1237">1237</a>
 <a href="#1238" id="1238">1238</a>
 <a href="#1239" id="1239">1239</a>
-<a href="#1240" id="1240">1240</a>
-<a href="#1241" id="1241">1241</a>
-<a href="#1242" id="1242">1242</a>
-<a href="#1243" id="1243">1243</a>
-<a href="#1244" id="1244">1244</a>
-<a href="#1245" id="1245">1245</a>
-<a href="#1246" id="1246">1246</a>
-<a href="#1247" id="1247">1247</a>
-<a href="#1248" id="1248">1248</a>
-<a href="#1249" id="1249">1249</a>
-<a href="#1250" id="1250">1250</a>
-<a href="#1251" id="1251">1251</a>
-<a href="#1252" id="1252">1252</a>
-<a href="#1253" id="1253">1253</a>
-<a href="#1254" id="1254">1254</a>
 </pre></div><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
@@ -2175,6 +2160,7 @@
                 read_with_if_none_match: <span class="bool-val">true</span>,
                 read_with_override_cache_control: <span class="bool-val">true</span>,
                 read_with_override_content_disposition: <span class="bool-val">true</span>,
+                read_with_override_content_type: <span class="bool-val">true</span>,
 
                 write: <span class="bool-val">true</span>,
                 write_can_sink: <span class="bool-val">true</span>,
@@ -2226,16 +2212,7 @@
     }
 
     <span class="kw">async fn </span>read(<span class="kw-2">&amp;</span><span class="self">self</span>, path: <span class="kw-2">&amp;</span>str, args: OpRead) -&gt; <span class="prelude-ty">Result</span>&lt;(RpRead, <span class="self">Self</span>::Reader)&gt; {
-        <span class="kw">let </span>resp = <span class="self">self
-            </span>.core
-            .s3_get_object(
-                path,
-                args.range(),
-                args.if_none_match(),
-                args.if_match(),
-                args.override_content_disposition(),
-            )
-            .<span class="kw">await</span><span class="question-mark">?</span>;
+        <span class="kw">let </span>resp = <span class="self">self</span>.core.s3_get_object(path, args).<span class="kw">await</span><span class="question-mark">?</span>;
 
         <span class="kw">let </span>status = resp.status();
 
@@ -2325,14 +2302,7 @@
                 <span class="self">self</span>.core
                     .s3_head_object_request(path, v.if_none_match(), v.if_match())<span class="question-mark">?
             </span>}
-            PresignOperation::Read(v) =&gt; <span class="self">self</span>.core.s3_get_object_request(
-                path,
-                v.range(),
-                v.override_content_disposition(),
-                v.override_cache_control(),
-                v.if_none_match(),
-                v.if_match(),
-            )<span class="question-mark">?</span>,
+            PresignOperation::Read(v) =&gt; <span class="self">self</span>.core.s3_get_object_request(path, v.clone())<span class="question-mark">?</span>,
             PresignOperation::Write(<span class="kw">_</span>) =&gt; {
                 <span class="self">self</span>.core
                     .s3_put_object_request(path, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, <span class="prelude-val">None</span>, AsyncBody::Empty)<span class="question-mark">?
diff --git a/docs/rust/src/opendal/services/s3/core.rs.html b/docs/rust/src/opendal/services/s3/core.rs.html
index b1e01d88f..1110a5e0c 100644
--- a/docs/rust/src/opendal/services/s3/core.rs.html
+++ b/docs/rust/src/opendal/services/s3/core.rs.html
@@ -875,15 +875,6 @@
 <a href="#875" id="875">875</a>
 <a href="#876" id="876">876</a>
 <a href="#877" id="877">877</a>
-<a href="#878" id="878">878</a>
-<a href="#879" id="879">879</a>
-<a href="#880" id="880">880</a>
-<a href="#881" id="881">881</a>
-<a href="#882" id="882">882</a>
-<a href="#883" id="883">883</a>
-<a href="#884" id="884">884</a>
-<a href="#885" id="885">885</a>
-<a href="#886" id="886">886</a>
 </pre></div><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
@@ -949,6 +940,7 @@
         <span class="string">&quot;x-amz-copy-source-server-side-encryption-customer-key-md5&quot;</span>;
 
     <span class="kw">pub const </span>RESPONSE_CONTENT_DISPOSITION: <span class="kw-2">&amp;</span>str = <span class="string">&quot;response-content-disposition&quot;</span>;
+    <span class="kw">pub const </span>RESPONSE_CONTENT_TYPE: <span class="kw-2">&amp;</span>str = <span class="string">&quot;response-content-type&quot;</span>;
     <span class="kw">pub const </span>RESPONSE_CACHE_CONTROL: <span class="kw-2">&amp;</span>str = <span class="string">&quot;response-cache-control&quot;</span>;
 }
 
@@ -1124,15 +1116,7 @@
         <span class="prelude-val">Ok</span>(req)
     }
 
-    <span class="kw">pub fn </span>s3_get_object_request(
-        <span class="kw-2">&amp;</span><span class="self">self</span>,
-        path: <span class="kw-2">&amp;</span>str,
-        range: BytesRange,
-        override_content_disposition: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>str&gt;,
-        override_cache_control: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>str&gt;,
-        if_none_match: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>str&gt;,
-        if_match: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>str&gt;,
-    ) -&gt; <span class="prelude-ty">Result</span>&lt;Request&lt;AsyncBody&gt;&gt; {
+    <span class="kw">pub fn </span>s3_get_object_request(<span class="kw-2">&amp;</span><span class="self">self</span>, path: <span class="kw-2">&amp;</span>str, args: OpRead) -&gt; <span class="prelude-ty">Result</span>&lt;Request&lt;AsyncBody&gt;&gt; {
         <span class="kw">let </span>p = build_abs_path(<span class="kw-2">&amp;</span><span class="self">self</span>.root, path);
 
         <span class="comment">// Construct headers to add to the request
@@ -1140,14 +1124,21 @@
 
         <span class="comment">// Add query arguments to the URL based on response overrides
         </span><span class="kw">let </span><span class="kw-2">mut </span>query_args = Vec::new();
-        <span class="kw">if let </span><span class="prelude-val">Some</span>(override_content_disposition) = override_content_disposition {
+        <span class="kw">if let </span><span class="prelude-val">Some</span>(override_content_disposition) = args.override_content_disposition() {
             query_args.push(<span class="macro">format!</span>(
                 <span class="string">&quot;{}={}&quot;</span>,
                 constants::RESPONSE_CONTENT_DISPOSITION,
                 percent_encode_path(override_content_disposition)
             ))
         }
-        <span class="kw">if let </span><span class="prelude-val">Some</span>(override_cache_control) = override_cache_control {
+        <span class="kw">if let </span><span class="prelude-val">Some</span>(override_content_type) = args.override_content_type() {
+            query_args.push(<span class="macro">format!</span>(
+                <span class="string">&quot;{}={}&quot;</span>,
+                constants::RESPONSE_CONTENT_TYPE,
+                percent_encode_path(override_content_type)
+            ))
+        }
+        <span class="kw">if let </span><span class="prelude-val">Some</span>(override_cache_control) = args.override_cache_control() {
             query_args.push(<span class="macro">format!</span>(
                 <span class="string">&quot;{}={}&quot;</span>,
                 constants::RESPONSE_CACHE_CONTROL,
@@ -1160,15 +1151,16 @@
 
         <span class="kw">let </span><span class="kw-2">mut </span>req = Request::get(<span class="kw-2">&amp;</span>url);
 
+        <span class="kw">let </span>range = args.range();
         <span class="kw">if </span>!range.is_full() {
             req = req.header(http::header::RANGE, range.to_header());
         }
 
-        <span class="kw">if let </span><span class="prelude-val">Some</span>(if_none_match) = if_none_match {
+        <span class="kw">if let </span><span class="prelude-val">Some</span>(if_none_match) = args.if_none_match() {
             req = req.header(IF_NONE_MATCH, if_none_match);
         }
 
-        <span class="kw">if let </span><span class="prelude-val">Some</span>(if_match) = if_match {
+        <span class="kw">if let </span><span class="prelude-val">Some</span>(if_match) = args.if_match() {
             req = req.header(IF_MATCH, if_match);
         }
         <span class="comment">// Set SSE headers.
@@ -1185,19 +1177,9 @@
     <span class="kw">pub async fn </span>s3_get_object(
         <span class="kw-2">&amp;</span><span class="self">self</span>,
         path: <span class="kw-2">&amp;</span>str,
-        range: BytesRange,
-        if_none_match: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>str&gt;,
-        if_match: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>str&gt;,
-        override_content_disposition: <span class="prelude-ty">Option</span>&lt;<span class="kw-2">&amp;</span>str&gt;,
+        args: OpRead,
     ) -&gt; <span class="prelude-ty">Result</span>&lt;Response&lt;IncomingAsyncBody&gt;&gt; {
-        <span class="kw">let </span><span class="kw-2">mut </span>req = <span class="self">self</span>.s3_get_object_request(
-            path,
-            range,
-            override_content_disposition,
-            <span class="prelude-val">None</span>,
-            if_none_match,
-            if_match,
-        )<span class="question-mark">?</span>;
+        <span class="kw">let </span><span class="kw-2">mut </span>req = <span class="self">self</span>.s3_get_object_request(path, args)<span class="question-mark">?</span>;
 
         <span class="self">self</span>.sign(<span class="kw-2">&amp;mut </span>req).<span class="kw">await</span><span class="question-mark">?</span>;
 
diff --git a/docs/rust/src/opendal/types/capability.rs.html b/docs/rust/src/opendal/types/capability.rs.html
index c5ac386e3..c445b2d97 100644
--- a/docs/rust/src/opendal/types/capability.rs.html
+++ b/docs/rust/src/opendal/types/capability.rs.html
@@ -184,6 +184,8 @@
 <a href="#184" id="184">184</a>
 <a href="#185" id="185">185</a>
 <a href="#186" id="186">186</a>
+<a href="#187" id="187">187</a>
+<a href="#188" id="188">188</a>
 </pre></div><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
@@ -257,6 +259,8 @@
     </span><span class="kw">pub </span>read_with_override_cache_control: bool,
     <span class="doccomment">/// if operator supports read with override content disposition natively, it will be true.
     </span><span class="kw">pub </span>read_with_override_content_disposition: bool,
+    <span class="doccomment">/// if operator supports read with override content type natively, it will be true.
+    </span><span class="kw">pub </span>read_with_override_content_type: bool,
 
     <span class="doccomment">/// If operator supports write natively, it will be true.
     </span><span class="kw">pub </span>write: bool,
diff --git a/docs/rust/src/opendal/types/operator/operator_futures.rs.html b/docs/rust/src/opendal/types/operator/operator_futures.rs.html
index 1fb07d2a6..77286923f 100644
--- a/docs/rust/src/opendal/types/operator/operator_futures.rs.html
+++ b/docs/rust/src/opendal/types/operator/operator_futures.rs.html
@@ -573,6 +573,30 @@
 <a href="#573" id="573">573</a>
 <a href="#574" id="574">574</a>
 <a href="#575" id="575">575</a>
+<a href="#576" id="576">576</a>
+<a href="#577" id="577">577</a>
+<a href="#578" id="578">578</a>
+<a href="#579" id="579">579</a>
+<a href="#580" id="580">580</a>
+<a href="#581" id="581">581</a>
+<a href="#582" id="582">582</a>
+<a href="#583" id="583">583</a>
+<a href="#584" id="584">584</a>
+<a href="#585" id="585">585</a>
+<a href="#586" id="586">586</a>
+<a href="#587" id="587">587</a>
+<a href="#588" id="588">588</a>
+<a href="#589" id="589">589</a>
+<a href="#590" id="590">590</a>
+<a href="#591" id="591">591</a>
+<a href="#592" id="592">592</a>
+<a href="#593" id="593">593</a>
+<a href="#594" id="594">594</a>
+<a href="#595" id="595">595</a>
+<a href="#596" id="596">596</a>
+<a href="#597" id="597">597</a>
+<a href="#598" id="598">598</a>
+<a href="#599" id="599">599</a>
 </pre></div><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
@@ -826,6 +850,14 @@
         <span class="self">self
     </span>}
 
+    <span class="doccomment">/// Sets the content-type header that should be send back by the remote read operation.
+    </span><span class="kw">pub fn </span>override_content_type(<span class="kw-2">mut </span><span class="self">self</span>, v: <span class="kw-2">&amp;</span>str) -&gt; <span class="self">Self </span>{
+        <span class="self">self</span>.<span class="number">0 </span>= <span class="self">self
+            </span>.<span class="number">0
+            </span>.map_args(|(args, dur)| (args.with_override_content_type(v), dur));
+        <span class="self">self
+    </span>}
+
     <span class="doccomment">/// Set the If-Match of the option
     </span><span class="kw">pub fn </span>if_match(<span class="kw-2">mut </span><span class="self">self</span>, v: <span class="kw-2">&amp;</span>str) -&gt; <span class="self">Self </span>{
         <span class="self">self</span>.<span class="number">0 </span>= <span class="self">self</span>.<span class="number">0</span>.map_args(|(args, dur)| (args.with_if_match(v), dur));
@@ -927,6 +959,14 @@
         <span class="self">self
     </span>}
 
+    <span class="doccomment">/// Sets the content-type header that should be send back by the remote read operation.
+    </span><span class="kw">pub fn </span>override_content_type(<span class="kw-2">mut </span><span class="self">self</span>, content_type: <span class="kw-2">&amp;</span>str) -&gt; <span class="self">Self </span>{
+        <span class="self">self</span>.<span class="number">0 </span>= <span class="self">self
+            </span>.<span class="number">0
+            </span>.map_args(|args| args.with_override_content_type(content_type));
+        <span class="self">self
+    </span>}
+
     <span class="doccomment">/// Set the If-Match for this operation.
     </span><span class="kw">pub fn </span>if_match(<span class="kw-2">mut </span><span class="self">self</span>, v: <span class="kw-2">&amp;</span>str) -&gt; <span class="self">Self </span>{
         <span class="self">self</span>.<span class="number">0 </span>= <span class="self">self</span>.<span class="number">0</span>.map_args(|args| args.with_if_match(v));
@@ -982,6 +1022,14 @@
         <span class="self">self
     </span>}
 
+    <span class="doccomment">/// Sets the content-type header that should be send back by the remote read operation.
+    </span><span class="kw">pub fn </span>override_content_type(<span class="kw-2">mut </span><span class="self">self</span>, content_type: <span class="kw-2">&amp;</span>str) -&gt; <span class="self">Self </span>{
+        <span class="self">self</span>.<span class="number">0 </span>= <span class="self">self
+            </span>.<span class="number">0
+            </span>.map_args(|args| args.with_override_content_type(content_type));
+        <span class="self">self
+    </span>}
+
     <span class="doccomment">/// Set the If-Match for this operation.
     </span><span class="kw">pub fn </span>if_match(<span class="kw-2">mut </span><span class="self">self</span>, v: <span class="kw-2">&amp;</span>str) -&gt; <span class="self">Self </span>{
         <span class="self">self</span>.<span class="number">0 </span>= <span class="self">self</span>.<span class="number">0</span>.map_args(|args| args.with_if_match(v));
diff --git a/docs/services/azblob/index.html b/docs/services/azblob/index.html
index c1a90844d..1ee19c41d 100644
--- a/docs/services/azblob/index.html
+++ b/docs/services/azblob/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Azblob | 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/services/azblob"><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 [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/azdfs/index.html b/docs/services/azdfs/index.html
index 8d30f3abf..e984e27f3 100644
--- a/docs/services/azdfs/index.html
+++ b/docs/services/azdfs/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Azdfs | 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/services/azdfs"><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 d [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/cos/index.html b/docs/services/cos/index.html
index 44aeca241..f5d615706 100644
--- a/docs/services/cos/index.html
+++ b/docs/services/cos/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">COS | 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/services/cos"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data- [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/dashmap/index.html b/docs/services/dashmap/index.html
index 4123ae554..7ee66231e 100644
--- a/docs/services/dashmap/index.html
+++ b/docs/services/dashmap/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">DashMap | 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/services/dashmap"><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"><me [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/fs/index.html b/docs/services/fs/index.html
index df30ed26e..3cbfb7f8b 100644
--- a/docs/services/fs/index.html
+++ b/docs/services/fs/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Fs | 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/services/fs"><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.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/ftp/index.html b/docs/services/ftp/index.html
index 2f48f4431..c3a2cd29e 100644
--- a/docs/services/ftp/index.html
+++ b/docs/services/ftp/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">FTP | 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/services/ftp"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data- [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/hdfs/index.html b/docs/services/hdfs/index.html
index 9c326e07b..f8458df95 100644
--- a/docs/services/hdfs/index.html
+++ b/docs/services/hdfs/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">HDFS | 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/services/hdfs"><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 dat [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/ipfs/index.html b/docs/services/ipfs/index.html
index 9ccd57e06..b1d2fdd2a 100644
--- a/docs/services/ipfs/index.html
+++ b/docs/services/ipfs/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">IPFS | 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/services/ipfs"><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 dat [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/ipmfs/index.html b/docs/services/ipmfs/index.html
index ca82bb1e6..f965f2ecd 100644
--- a/docs/services/ipmfs/index.html
+++ b/docs/services/ipmfs/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">IPMFS | 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/services/ipmfs"><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 d [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/memory/index.html b/docs/services/memory/index.html
index fd4849957..c25a3a250 100644
--- a/docs/services/memory/index.html
+++ b/docs/services/memory/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Memory | 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/services/memory"><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 [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/oss/index.html b/docs/services/oss/index.html
index 48b98fb39..3be82c778 100644
--- a/docs/services/oss/index.html
+++ b/docs/services/oss/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">OSS | 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/services/oss"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data- [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/redis/index.html b/docs/services/redis/index.html
index 1c465343e..fa9a7097d 100644
--- a/docs/services/redis/index.html
+++ b/docs/services/redis/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Redis | 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/services/redis"><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 d [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/rocksdb/index.html b/docs/services/rocksdb/index.html
index fb40f8bf6..46674b456 100644
--- a/docs/services/rocksdb/index.html
+++ b/docs/services/rocksdb/index.html
@@ -5,7 +5,7 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">RocksDB | 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/services/rocksdb"><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"><me [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
@@ -13,8 +13,8 @@
 <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="ro [...]
 issues. It is advisable to follow the steps provided in the <a href="https://github.com/facebook/rocksdb/blob/main/INSTALL.md" target="_blank" rel="noopener noreferrer"><code>INSTALL</code></a>
 file to build rocksdb, rather than relying on system libraries that
-may be outdated and incompatible.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="configuration">Configuration<a href="#configuration" class="hash-link" aria-label="Direct link to Configuration" title="Direct link to Configuration">​</a></h2><ul><li><code>root</code>: Set the working directory of <code>OpenDAL</code></li><li><code>datadir</code>: Set the path to the rocksdb data directory</li></ul><p>You can refer to <!-- -->[<code>RocksdbBuilder</code>]<!-- -->&#x27;s docs for mor [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+may be outdated and incompatible.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="configuration">Configuration<a href="#configuration" class="hash-link" aria-label="Direct link to Configuration" title="Direct link to Configuration">​</a></h2><ul><li><code>root</code>: Set the working directory of <code>OpenDAL</code></li><li><code>datadir</code>: Set the path to the rocksdb data directory</li></ul><p>You can refer to <!-- -->[<code>RocksdbBuilder</code>]<!-- -->&#x27;s docs for mor [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/s3/index.html b/docs/services/s3/index.html
index 0be10a559..39168d5a4 100644
--- a/docs/services/s3/index.html
+++ b/docs/services/s3/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">S3 | 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/services/s3"><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.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/sftp/index.html b/docs/services/sftp/index.html
index 5e2483c3c..e265907c9 100644
--- a/docs/services/sftp/index.html
+++ b/docs/services/sftp/index.html
@@ -5,14 +5,14 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">SFTP | 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/services/sftp"><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 dat [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-lots of files, you should pay attention to close the file after using it.</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="capabilities">Capabilities<a href="#capabilities" class="hash-link" aria-label="Direct link to Capabilities" title="Direct link to Capabilities">​</a></h2><p>This service can be used to:</p><ul class="contains-task-list containsTaskList_mC6p"><li class="task-list-item"><input type="checkbox" checked="" disabled=""> <!-- -->stat</li><li class="task-li [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+lots of files, you should pay attention to close the file after using it.</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="capabilities">Capabilities<a href="#capabilities" class="hash-link" aria-label="Direct link to Capabilities" title="Direct link to Capabilities">​</a></h2><p>This service can be used to:</p><ul class="contains-task-list containsTaskList_mC6p"><li class="task-list-item"><input type="checkbox" checked="" disabled=""> <!-- -->stat</li><li class="task-li [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/sled/index.html b/docs/services/sled/index.html
index 7509fa119..2a7bcca07 100644
--- a/docs/services/sled/index.html
+++ b/docs/services/sled/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Sled | 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/services/sled"><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 dat [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/services/webhdfs/index.html b/docs/services/webhdfs/index.html
index 05db30fcf..4eeb83110 100644
--- a/docs/services/webhdfs/index.html
+++ b/docs/services/webhdfs/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">WebHDFS | 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/services/webhdfs"><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"><me [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/vision/index.html b/docs/vision/index.html
index ee37237f7..208540e43 100644
--- a/docs/vision/index.html
+++ b/docs/vision/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.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.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.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="ro [...]
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/download/index.html b/download/index.html
index 04c08b6d4..c03098879 100644
--- a/download/index.html
+++ b/download/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.1">
 <title data-rh="true">Download | 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/download"><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="true [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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="ro [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/index.html b/index.html
index 1499ef74b..ed07460af 100644
--- a/index.html
+++ b/index.html
@@ -5,13 +5,13 @@
 <meta name="generator" content="Docusaurus v2.4.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.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.8808a21b.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3b88d095.js" as="script">
 <link rel="preload" href="/assets/js/main.33d8db5d.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=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||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 [...]
-<script src="/assets/js/runtime~main.8808a21b.js"></script>
+<script src="/assets/js/runtime~main.3b88d095.js"></script>
 <script src="/assets/js/main.33d8db5d.js"></script>
 </body>
 </html>
\ No newline at end of file