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 2024/11/01 06:26:04 UTC

(opendal) branch gh-pages updated: deploy: b9e06bf7297aa9fbf5bc0c5c0a569283af44dfb3

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/opendal.git


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

commit bf456ca31757c2c8fee965c7e437d863b7294cdb
Author: Xuanwo <Xu...@users.noreply.github.com>
AuthorDate: Fri Nov 1 06:25:58 2024 +0000

    deploy: b9e06bf7297aa9fbf5bc0c5c0a569283af44dfb3
---
 404.html                                           |   2 +-
 assets/js/{main.4d75fedb.js => main.b36b73b7.js}   |   4 +-
 ...js.LICENSE.txt => main.b36b73b7.js.LICENSE.txt} |   0
 .../apache-opendal-meetup-beijing-1st/index.html   |   2 +-
 blog/apache-opendal-graduated/index.html           |   2 +-
 .../index.html                                     |   2 +-
 .../index.html                                     |   2 +-
 blog/archive/index.html                            |   2 +-
 blog/how-opendal-read-data/index.html              |   2 +-
 blog/index.html                                    |   2 +-
 blog/opendal-access-data-freely/index.html         |   2 +-
 blog/opendal-entered-apache-incubator/index.html   |   2 +-
 blog/owo-1/index.html                              |   2 +-
 blog/tags/announcement/index.html                  |   2 +-
 blog/tags/index.html                               |   2 +-
 blog/tags/internal/index.html                      |   2 +-
 blog/tags/owo/index.html                           |   2 +-
 community/category/committers/index.html           |   2 +-
 community/category/events/index.html               |   2 +-
 community/category/pmc-members/index.html          |   2 +-
 community/category/reference/index.html            |   2 +-
 community/category/release/index.html              |   2 +-
 community/committers/onboarding/index.html         |   2 +-
 .../request_for_adding_secrets/index.html          |   2 +-
 community/events/gsoc-proposal-guide/index.html    |   2 +-
 community/events/ospp-proposal-guide/index.html    |   2 +-
 community/index.html                               |   2 +-
 community/maturity/index.html                      |   2 +-
 community/pmc_members/board-reporting/index.html   |   2 +-
 .../pmc_members/nominate-committer/index.html      |   2 +-
 .../pmc_members/nominate-pmc-member/index.html     |   2 +-
 community/pmc_members/onboarding/index.html        |   2 +-
 community/release/index.html                       |   2 +-
 .../reference/generate_release_note/index.html     |   2 +-
 community/release/reference/setup_gpg/index.html   |   2 +-
 community/release/verify/index.html                |   2 +-
 community/security/index.html                      |   2 +-
 docs/binding-java/index.html                       |   2 +-
 docs/binding-nodejs/index.html                     |   2 +-
 docs/binding-python/index.html                     |   2 +-
 docs/dav-server/index.html                         |   2 +-
 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/BlockingReader.html            |   4 +-
 docs/nodejs/classes/BlockingWriter.html            |   8 +-
 docs/nodejs/classes/Capability.html                |  74 ++--
 docs/nodejs/classes/Entry.html                     |   4 +-
 docs/nodejs/classes/ExternalObject.html            |   4 +-
 docs/nodejs/classes/Layer.html                     |   2 +-
 docs/nodejs/classes/Lister.html                    |   4 +-
 docs/nodejs/classes/Metadata.html                  |  18 +-
 docs/nodejs/classes/Operator.html                  |  64 +--
 docs/nodejs/classes/Reader.html                    |   6 +-
 docs/nodejs/classes/RetryLayer.html                |  14 +-
 docs/nodejs/classes/Writer.html                    |   8 +-
 docs/nodejs/interfaces/ListOptions.html            |   4 +-
 docs/nodejs/interfaces/PresignedRequest.html       |   8 +-
 docs/nodejs/interfaces/WriteOptions.html           |  12 +-
 docs/nodejs/interfaces/WriterOptions.html          |  12 +-
 .../object_store_opendal/struct.OpendalStore.html  |   2 +-
 docs/object-store-opendal/search-index.js          |   2 +-
 docs/object-store/index.html                       |   2 +-
 docs/overview/index.html                           |   2 +-
 docs/python/opendal.html                           | 440 ++++++++++-----------
 docs/python/search.js                              |   2 +-
 docs/quickstart/index.html                         |   2 +-
 docs/rust-core/index.html                          |   2 +-
 download/index.html                                |   2 +-
 index.html                                         |   2 +-
 lunr-index-1730378929944.json                      |   1 -
 lunr-index-1730442319077.json                      |   1 +
 lunr-index.json                                    |   2 +-
 search-doc-1730378929944.json                      |   1 -
 search-doc-1730442319077.json                      |   1 +
 search-doc.json                                    |   2 +-
 77 files changed, 402 insertions(+), 402 deletions(-)

diff --git a/404.html b/404.html
index 0de5003442..f0e91d0e3d 100644
--- a/404.html
+++ b/404.html
@@ -6,7 +6,7 @@
 <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" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="tr [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/assets/js/main.4d75fedb.js b/assets/js/main.b36b73b7.js
similarity index 99%
rename from assets/js/main.4d75fedb.js
rename to assets/js/main.b36b73b7.js
index 7035c69142..4687092e51 100644
--- a/assets/js/main.4d75fedb.js
+++ b/assets/js/main.b36b73b7.js
@@ -1,2 +1,2 @@
-/*! For license information please see main.4d75fedb.js.LICENSE.txt */
-(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[8792],{4649:(e,t,n)=>{var r={"./prism-groovy":2600,"./prism-java":1330,"./prism-rust":8432};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=4649},6527:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});n(758);var r=n(2059),o=n.n(r),a=n(4054);con [...]
\ No newline at end of file
+/*! For license information please see main.b36b73b7.js.LICENSE.txt */
+(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[8792],{4649:(e,t,n)=>{var r={"./prism-groovy":2600,"./prism-java":1330,"./prism-rust":8432};function o(e){var t=a(e);return n(t)}function a(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}o.keys=function(){return Object.keys(r)},o.resolve=a,e.exports=o,o.id=4649},6527:(e,t,n)=>{"use strict";n.d(t,{A:()=>f});n(758);var r=n(2059),o=n.n(r),a=n(4054);con [...]
\ No newline at end of file
diff --git a/assets/js/main.4d75fedb.js.LICENSE.txt b/assets/js/main.b36b73b7.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.4d75fedb.js.LICENSE.txt
rename to assets/js/main.b36b73b7.js.LICENSE.txt
diff --git a/blog/2024/09/09/apache-opendal-meetup-beijing-1st/index.html b/blog/2024/09/09/apache-opendal-meetup-beijing-1st/index.html
index 2df85a2b14..aed671a953 100644
--- a/blog/2024/09/09/apache-opendal-meetup-beijing-1st/index.html
+++ b/blog/2024/09/09/apache-opendal-meetup-beijing-1st/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Apache OpenDAL™ Beijing Meetup 1st | 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/2024/09/09/apache-opendal-meetup-beijing-1st"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="tr [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/apache-opendal-graduated/index.html b/blog/apache-opendal-graduated/index.html
index a6ff884ed8..b828f33b96 100644
--- a/blog/apache-opendal-graduated/index.html
+++ b/blog/apache-opendal-graduated/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Apache OpenDAL™ is now Graduated | 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/apache-opendal-graduated"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_t [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/apache-opendal-participates-in-gsoc-2024/index.html b/blog/apache-opendal-participates-in-gsoc-2024/index.html
index c2e3f13a90..26bde2ec14 100644
--- a/blog/apache-opendal-participates-in-gsoc-2024/index.html
+++ b/blog/apache-opendal-participates-in-gsoc-2024/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Apache OpenDAL™ participates in Google Summer of Code 2024 | 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/apache-opendal-participates-in-gsoc-2024"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="e [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/apache-opendal-participates-in-ospp-2024/index.html b/blog/apache-opendal-participates-in-ospp-2024/index.html
index 0ad98a06a2..413bfa036c 100644
--- a/blog/apache-opendal-participates-in-ospp-2024/index.html
+++ b/blog/apache-opendal-participates-in-ospp-2024/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Apache OpenDAL™ participates in Open Source Promotion Plan 2024 | 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/apache-opendal-participates-in-ospp-2024"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" conte [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/archive/index.html b/blog/archive/index.html
index 12e22c15d7..ffa8a63a81 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -6,7 +6,7 @@
 <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" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><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.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/how-opendal-read-data/index.html b/blog/how-opendal-read-data/index.html
index 3f101f3d47..567b339846 100644
--- a/blog/how-opendal-read-data/index.html
+++ b/blog/how-opendal-read-data/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Apache OpenDAL™ Internal: Data Reading | 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/how-opendal-read-data"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusauru [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/index.html b/blog/index.html
index 3e089721cd..a209b7691a 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -6,7 +6,7 @@
 <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" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property="o [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/opendal-access-data-freely/index.html b/blog/opendal-access-data-freely/index.html
index d497ed18f3..60f1144300 100644
--- a/blog/opendal-access-data-freely/index.html
+++ b/blog/opendal-access-data-freely/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Apache OpenDAL™: 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" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusau [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/opendal-entered-apache-incubator/index.html b/blog/opendal-entered-apache-incubator/index.html
index 01d0e8b5e4..e65e9871a2 100644
--- a/blog/opendal-entered-apache-incubator/index.html
+++ b/blog/opendal-entered-apache-incubator/index.html
@@ -6,7 +6,7 @@
 <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" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><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.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/owo-1/index.html b/blog/owo-1/index.html
index d7f7628032..a08b901e25 100644
--- a/blog/owo-1/index.html
+++ b/blog/owo-1/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">OwO #1: The v0.40 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/blog/owo-1"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><met [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/tags/announcement/index.html b/blog/tags/announcement/index.html
index a641808030..bff5f6b2dd 100644
--- a/blog/tags/announcement/index.html
+++ b/blog/tags/announcement/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">6 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" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsear [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/tags/index.html b/blog/tags/index.html
index 07605358a5..17e74feced 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -6,7 +6,7 @@
 <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" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" proper [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/tags/internal/index.html b/blog/tags/internal/index.html
index d08ea09c0e..7918dd6195 100644
--- a/blog/tags/internal/index.html
+++ b/blog/tags/internal/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">One post tagged with &quot;internal&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/internal"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:lang [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/blog/tags/owo/index.html b/blog/tags/owo/index.html
index 48228c30f2..3f4daad990 100644
--- a/blog/tags/owo/index.html
+++ b/blog/tags/owo/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">One post tagged with &quot;owo&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/owo"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" cont [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/category/committers/index.html b/community/category/committers/index.html
index 1133561af6..b904be94ed 100644
--- a/community/category/committers/index.html
+++ b/community/category/committers/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Committers | 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/community/category/committers"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en">< [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/category/events/index.html b/community/category/events/index.html
index c1f1f0cd21..6f832ad488 100644
--- a/community/category/events/index.html
+++ b/community/category/events/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Events | 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/community/category/events"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><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.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/category/pmc-members/index.html b/community/category/pmc-members/index.html
index f348e89d19..e3a110596f 100644
--- a/community/category/pmc-members/index.html
+++ b/community/category/pmc-members/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Committers | 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/community/category/pmc-members"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"> [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/category/reference/index.html b/community/category/reference/index.html
index 929fc62f06..f6a8c5a3db 100644
--- a/community/category/reference/index.html
+++ b/community/category/reference/index.html
@@ -6,7 +6,7 @@
 <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/community/category/reference"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><me [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/category/release/index.html b/community/category/release/index.html
index 2fa205e0e7..416d9c4253 100644
--- a/community/category/release/index.html
+++ b/community/category/release/index.html
@@ -6,7 +6,7 @@
 <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/community/category/release"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><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.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/committers/onboarding/index.html b/community/committers/onboarding/index.html
index 7c5f798be8..3e7f77f822 100644
--- a/community/committers/onboarding/index.html
+++ b/community/committers/onboarding/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Onboarding | 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/community/committers/onboarding"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/committers/request_for_adding_secrets/index.html b/community/committers/request_for_adding_secrets/index.html
index c8ce142ad9..4c90563faa 100644
--- a/community/committers/request_for_adding_secrets/index.html
+++ b/community/committers/request_for_adding_secrets/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Request for adding secrets | 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/community/committers/request_for_adding_secrets"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" 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.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/events/gsoc-proposal-guide/index.html b/community/events/gsoc-proposal-guide/index.html
index d51f07ff7d..e28ab1eea8 100644
--- a/community/events/gsoc-proposal-guide/index.html
+++ b/community/events/gsoc-proposal-guide/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">GSoC Project Proposal Guidance | 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/community/events/gsoc-proposal-guide"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsear [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/events/ospp-proposal-guide/index.html b/community/events/ospp-proposal-guide/index.html
index 6679733df1..cec4294f5c 100644
--- a/community/events/ospp-proposal-guide/index.html
+++ b/community/events/ospp-proposal-guide/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">OSPP Project Proposal Guidance | 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/community/events/ospp-proposal-guide"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsear [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/index.html b/community/index.html
index 7b33f84749..d2a1a60afb 100644
--- a/community/index.html
+++ b/community/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Community | 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/community/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><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.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/maturity/index.html b/community/maturity/index.html
index 460231d5b5..29bc010b78 100644
--- a/community/maturity/index.html
+++ b/community/maturity/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Maturity | 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/community/maturity"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><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.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/pmc_members/board-reporting/index.html b/community/pmc_members/board-reporting/index.html
index 0cec415858..561825464a 100644
--- a/community/pmc_members/board-reporting/index.html
+++ b/community/pmc_members/board-reporting/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Board reporting | 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/community/pmc_members/board-reporting"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" c [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/pmc_members/nominate-committer/index.html b/community/pmc_members/nominate-committer/index.html
index c2f4bbfe98..a955ec09a8 100644
--- a/community/pmc_members/nominate-committer/index.html
+++ b/community/pmc_members/nominate-committer/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Nominate Committer | 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/community/pmc_members/nominate-committer"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:langu [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/pmc_members/nominate-pmc-member/index.html b/community/pmc_members/nominate-pmc-member/index.html
index 9b2ebf4574..b7f488b55a 100644
--- a/community/pmc_members/nominate-pmc-member/index.html
+++ b/community/pmc_members/nominate-pmc-member/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Nominate PMC Member | 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/community/pmc_members/nominate-pmc-member"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:lan [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/pmc_members/onboarding/index.html b/community/pmc_members/onboarding/index.html
index f609ea5fc9..724ad8dae5 100644
--- a/community/pmc_members/onboarding/index.html
+++ b/community/pmc_members/onboarding/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Onboarding | 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/community/pmc_members/onboarding"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/release/index.html b/community/release/index.html
index 3ce76873b3..e3e750f91f 100644
--- a/community/release/index.html
+++ b/community/release/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Create a 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/community/release/"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta  [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/release/reference/generate_release_note/index.html b/community/release/reference/generate_release_note/index.html
index 3cd1850059..de02538068 100644
--- a/community/release/reference/generate_release_note/index.html
+++ b/community/release/reference/generate_release_note/index.html
@@ -6,7 +6,7 @@
 <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/community/release/reference/generate_release_note"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="doc [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/release/reference/setup_gpg/index.html b/community/release/reference/setup_gpg/index.html
index 84a41bf546..b39c72789e 100644
--- a/community/release/reference/setup_gpg/index.html
+++ b/community/release/reference/setup_gpg/index.html
@@ -6,7 +6,7 @@
 <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/community/release/reference/setup_gpg"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" con [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/release/verify/index.html b/community/release/verify/index.html
index df935e01b2..1b3952fccb 100644
--- a/community/release/verify/index.html
+++ b/community/release/verify/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Verify a release candidate | 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/community/release/verify"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" con [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/community/security/index.html b/community/security/index.html
index 641a389698..c30c42e9e5 100644
--- a/community/security/index.html
+++ b/community/security/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Security | 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/community/security"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><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.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/binding-java/index.html b/docs/binding-java/index.html
index 4101c3fc3c..14ac9213ab 100644
--- a/docs/binding-java/index.html
+++ b/docs/binding-java/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Java API | 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/binding-java"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><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.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/binding-nodejs/index.html b/docs/binding-nodejs/index.html
index 0c088dce99..b4a4fc2245 100644
--- a/docs/binding-nodejs/index.html
+++ b/docs/binding-nodejs/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Node.js API | 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/binding-nodejs"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><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.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/binding-python/index.html b/docs/binding-python/index.html
index fc85fbcd99..f4d2aee0f1 100644
--- a/docs/binding-python/index.html
+++ b/docs/binding-python/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Python API | 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/binding-python"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><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.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/dav-server/index.html b/docs/dav-server/index.html
index 6c390f3faa..01e7141a09 100644
--- a/docs/dav-server/index.html
+++ b/docs/dav-server/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">WebDAV Integration | 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/dav-server"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><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.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/lua/classes/opendal.metadata.html b/docs/lua/classes/opendal.metadata.html
index 272479285b..d641446797 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 2024-10-31 12:42:01 </i>
+<i style="float:right;">Last updated 2024-11-01 06:17:47 </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 779a64e516..af4db0b350 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 2024-10-31 12:42:01 </i>
+<i style="float:right;">Last updated 2024-11-01 06:17:47 </i>
 </div> <!-- id="about" -->
 </div> <!-- id="container" -->
 </body>
diff --git a/docs/lua/index.html b/docs/lua/index.html
index e0482a27f1..4cb03a4804 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 2024-10-31 12:42:01 </i>
+<i style="float:right;">Last updated 2024-11-01 06:17:47 </i>
 </div> <!-- id="about" -->
 </div> <!-- id="container" -->
 </body>
diff --git a/docs/nodejs/classes/BlockingLister.html b/docs/nodejs/classes/BlockingLister.html
index a4596cce0b..c99baefe79 100644
--- a/docs/nodejs/classes/BlockingLister.html
+++ b/docs/nodejs/classes/BlockingLister.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingLister | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async [...]
 manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L706">generated.d.ts:706</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"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L706">generated.d.ts:706</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"><h5 class="tsd-index-heading uppercase" ro [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="BlockingLister.html#next" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>next</span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Blo [...]
\ No newline at end of file
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Blo [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/BlockingReader.html b/docs/nodejs/classes/BlockingReader.html
index 50b5235213..8ae957b62e 100644
--- a/docs/nodejs/classes/BlockingReader.html
+++ b/docs/nodejs/classes/BlockingReader.html
@@ -1,7 +1,7 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingReader | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async [...]
 manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L597">generated.d.ts:597</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/index.d.ts#L23">index.d.ts:23</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L597">generated.d.ts:597</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/index.d.ts#L23">index.d.ts:23</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="BlockingReader.html#createReadStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Read<wbr/>Stream</span></a>
 <a href="BlockingReader.html#read" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>read</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Blo [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/BlockingWriter.html b/docs/nodejs/classes/BlockingWriter.html
index 4201453d0a..77326537cf 100644
--- a/docs/nodejs/classes/BlockingWriter.html
+++ b/docs/nodejs/classes/BlockingWriter.html
@@ -1,6 +1,6 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>BlockingWriter | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async [...]
 manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L618">generated.d.ts:618</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/index.d.ts#L32">index.d.ts:32</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L618">generated.d.ts:618</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/index.d.ts#L32">index.d.ts:32</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="BlockingWriter.html#close" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>close</span></a>
 <a href="BlockingWriter.html#createWriteStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Write<wbr/>Stream</span></a>
 <a href="BlockingWriter.html#write" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>write</span></a>
@@ -10,11 +10,11 @@ manner.</p>
 <p>Close this writer.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">writerSync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">);</span><br/><span class="hl-6">writer</span><span class="hl-1 [...]
 </code><button>Copy</button></pre>
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L649">generated.d.ts:649</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createWriteStream" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>create<wbr/>Write<wbr/>Stream</sp [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L649">generated.d.ts:649</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="createWriteStream" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>create<wbr/>Write<wbr/>Stream</sp [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
 <p>&amp;mut self in async napi methods should be marked as unsafe</p>
 </blockquote>
 <p>Write bytes into this writer.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">writer</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">);</span> [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Capability.html b/docs/nodejs/classes/Capability.html
index 8f52dde649..c3414b1129 100644
--- a/docs/nodejs/classes/Capability.html
+++ b/docs/nodejs/classes/Capability.html
@@ -7,7 +7,7 @@
 <li>What&#39;s current Operator max supports batch operations count.</li>
 </ul>
 <p>Add fields of Capabilities to be public and can be accessed directly.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L114">generated.d.ts:114</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"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L114">generated.d.ts:114</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"><h5 class="tsd-index-heading uppercase" ro [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="Capability.html#batch" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>batch</span></a>
 <a href="Capability.html#batchDelete" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>batch<wbr/>Delete</span></a>
 <a href="Capability.html#batchMaxOperations" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>batch<wbr/>Max<wbr/>Operations</span></a>
@@ -45,43 +45,43 @@
 <a href="Capability.html#writeWithContentDisposition" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>write<wbr/>With<wbr/>Content<wbr/>Disposition</span></a>
 <a href="Capability.html#writeWithContentType" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>write<wbr/>With<wbr/>Content<wbr/>Type</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Cap [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L196">generated.d.ts:196</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchDelete" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Delete</span><a href="#ba [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L198">generated.d.ts:198</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchMaxOperations" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Max<wbr/>Operation [...]
-</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L200">generated.d.ts:200</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="blocking" class="t [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L202">generated.d.ts:202</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="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L176">generated.d.ts:176</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="#create [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L172">generated.d.ts:172</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 [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L174">generated.d.ts:174</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="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L180">generated.d.ts:180</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithLimit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Limit</span><a [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L182">generated.d.ts:182</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithRecursive" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Recursive< [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L186">generated.d.ts:186</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithStartAfter" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Start<wbr [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L184">generated.d.ts:184</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presign" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign</span><a href="#presign" aria-la [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L188">generated.d.ts:188</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="#pr [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L190">generated.d.ts:190</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="#pr [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L192">generated.d.ts:192</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="# [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L194">generated.d.ts:194</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="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L122">generated.d.ts:122</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/>Matc [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L124">generated.d.ts:124</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/> [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L126">generated.d.ts:126</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideCacheControl" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/ [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L128">generated.d.ts:128</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>Wit [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L130">generated.d.ts:130</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/> [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L132">generated.d.ts:132</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 [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L178">generated.d.ts:178</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="Perm [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L116">generated.d.ts:116</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/>Matc [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L118">generated.d.ts:118</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/> [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L120">generated.d.ts:120</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="P [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L134">generated.d.ts:134</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanAppend" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Append</span> [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L140">generated.d.ts:140</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanEmpty" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Empty</span><a [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L138">generated.d.ts:138</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanMulti" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Multi</span><a [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L136">generated.d.ts:136</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiAlignSize" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Multi<wbr/>Align< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L196">generated.d.ts:196</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchDelete" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Delete</span><a href="#ba [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L198">generated.d.ts:198</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="batchMaxOperations" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>batch<wbr/>Max<wbr/>Operation [...]
+</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L200">generated.d.ts:200</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="blocking" class="t [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L202">generated.d.ts:202</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="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L176">generated.d.ts:176</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="#create [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L172">generated.d.ts:172</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 [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L174">generated.d.ts:174</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="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L180">generated.d.ts:180</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithLimit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Limit</span><a [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L182">generated.d.ts:182</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithRecursive" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Recursive< [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L186">generated.d.ts:186</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="listWithStartAfter" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>list<wbr/>With<wbr/>Start<wbr [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L184">generated.d.ts:184</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="presign" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>presign</span><a href="#presign" aria-la [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L188">generated.d.ts:188</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="#pr [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L190">generated.d.ts:190</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="#pr [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L192">generated.d.ts:192</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="# [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L194">generated.d.ts:194</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="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L122">generated.d.ts:122</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/>Matc [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L124">generated.d.ts:124</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/>If<wbr/> [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L126">generated.d.ts:126</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideCacheControl" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/ [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L128">generated.d.ts:128</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>Wit [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L130">generated.d.ts:130</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="readWithOverrideContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>read<wbr/>With<wbr/> [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L132">generated.d.ts:132</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 [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L178">generated.d.ts:178</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="Perm [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L116">generated.d.ts:116</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/>Matc [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L118">generated.d.ts:118</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="statWithIfNoneMatch" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>stat<wbr/>With<wbr/>If<wbr/> [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L120">generated.d.ts:120</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="P [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L134">generated.d.ts:134</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanAppend" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Append</span> [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L140">generated.d.ts:140</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanEmpty" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Empty</span><a [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L138">generated.d.ts:138</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeCanMulti" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Can<wbr/>Multi</span><a [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L136">generated.d.ts:136</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiAlignSize" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>Multi<wbr/>Align< [...]
 <p>For example, Google GCS requires align size to 256KiB in write_multi.</p>
-</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L164">generated.d.ts:164</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMaxSize" [...]
+</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L164">generated.d.ts:164</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMaxSize" [...]
 <p>For example, AWS S3 supports 5GiB as max in write_multi.</p>
-</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L152">generated.d.ts:152</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMinSize" [...]
+</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L152">generated.d.ts:152</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeMultiMinSize" [...]
 <p>For example, AWS S3 requires at least 5MiB in write_multi expect the last one.</p>
-</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L158">generated.d.ts:158</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeTotalMaxSize" [...]
+</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L158">generated.d.ts:158</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeTotalMaxSize" [...]
 <p>For example, Cloudflare D1 supports 1MB as max in write_total.</p>
-</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L170">generated.d.ts:170</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithCacheCont [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L146">generated.d.ts:146</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/ [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L144">generated.d.ts:144</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/>Conten [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L142">generated.d.ts:142</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary clas [...]
\ No newline at end of file
+</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L170">generated.d.ts:170</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithCacheCont [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L146">generated.d.ts:146</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/ [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L144">generated.d.ts:144</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="writeWithContentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>write<wbr/>With<wbr/>Conten [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L142">generated.d.ts:142</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary clas [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Entry.html b/docs/nodejs/classes/Entry.html
index 5555384876..444bca9ac7 100644
--- a/docs/nodejs/classes/Entry.html
+++ b/docs/nodejs/classes/Entry.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Entry | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../ [...]
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L566">generated.d.ts:566</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"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L566">generated.d.ts:566</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"><h5 class="tsd-index-heading uppercase" ro [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Entry.html#path" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>path</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ent [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L568">generated.d.ts:568</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class [...]
\ No newline at end of file
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L568">generated.d.ts:568</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/ExternalObject.html b/docs/nodejs/classes/ExternalObject.html
index 561c72f3f0..121c00e7b2 100644
--- a/docs/nodejs/classes/ExternalObject.html
+++ b/docs/nodejs/classes/ExternalObject.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ExternalObject | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ExternalObject | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="ExternalObject.html#reflection-5" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span><em>Property</em></span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ext [...]
\ No newline at end of file
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ext [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Layer.html b/docs/nodejs/classes/Layer.html
index 92f69d5a4c..df60c90537 100644
--- a/docs/nodejs/classes/Layer.html
+++ b/docs/nodejs/classes/Layer.html
@@ -1,3 +1,3 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Layer | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src="../ [...]
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L710">generated.d.ts:710</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"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L710">generated.d.ts:710</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"><h5 class="tsd-index-heading uppercase" ro [...]
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Lay [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Lister.html b/docs/nodejs/classes/Lister.html
index ea2352a724..e7ad54958d 100644
--- a/docs/nodejs/classes/Lister.html
+++ b/docs/nodejs/classes/Lister.html
@@ -1,10 +1,10 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Lister | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=".. [...]
 manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L691">generated.d.ts:691</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"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L691">generated.d.ts:691</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"><h5 class="tsd-index-heading uppercase" ro [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Lister.html#next" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>next</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Lis [...]
 <p>&amp;mut self in async napi methods should be marked as unsafe</p>
 </blockquote>
 <p>napi will make sure the function is safe, and we didn&#39;t do unsafe
 things 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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe [...]
\ No newline at end of file
+</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9 [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Metadata.html b/docs/nodejs/classes/Metadata.html
index 398e6216d3..af82229de4 100644
--- a/docs/nodejs/classes/Metadata.html
+++ b/docs/nodejs/classes/Metadata.html
@@ -1,5 +1,5 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Metadata | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=" [...]
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L571">generated.d.ts:571</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"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L571">generated.d.ts:571</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"><h5 class="tsd-index-heading uppercase" ro [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="Metadata.html#contentDisposition" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>content<wbr/>Disposition</span></a>
 <a href="Metadata.html#contentLength" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>content<wbr/>Length</span></a>
 <a href="Metadata.html#contentMd5" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>content<wbr/>Md5</span></a>
@@ -9,12 +9,12 @@
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Metadata.html#isDirectory" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>is<wbr/>Directory</span></a>
 <a href="Metadata.html#isFile" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>is<wbr/>File</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Met [...]
-</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L577">generated.d.ts:577</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentLength" cla [...]
-</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L579">generated.d.ts:579</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentMd5" class= [...]
-</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L581">generated.d.ts:581</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentType" class [...]
-</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L583">generated.d.ts:583</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="etag" class="tsd-a [...]
-</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L585">generated.d.ts:585</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="lastModified" clas [...]
+</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L577">generated.d.ts:577</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentLength" cla [...]
+</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L579">generated.d.ts:579</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentMd5" class= [...]
+</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L581">generated.d.ts:581</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="contentType" class [...]
+</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L583">generated.d.ts:583</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="etag" class="tsd-a [...]
+</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L585">generated.d.ts:585</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="lastModified" clas [...]
 <p>We will output this time in RFC3339 format like <code>1996-12-19T16:39:57+08:00</code>.</p>
-</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L591">generated.d.ts:591</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2 [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L573">generated.d.ts:573</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 [...]
-</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L575">generated.d.ts:575</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary clas [...]
\ No newline at end of file
+</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L591">generated.d.ts:591</a></li></ul></aside></li></ul></section></section><section class="tsd-panel-group tsd-member-group"><h2 [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L573">generated.d.ts:573</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 [...]
+</div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L575">generated.d.ts:575</a></li></ul></aside></li></ul></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary clas [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Operator.html b/docs/nodejs/classes/Operator.html
index 9278f7e728..22e2f43d47 100644
--- a/docs/nodejs/classes/Operator.html
+++ b/docs/nodejs/classes/Operator.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Operator | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=" [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Operator | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=" [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Operator.html#capability" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>capability</span></a>
 <a href="Operator.html#check" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>check</span></a>
 <a href="Operator.html#copy" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>copy</span></a>
@@ -33,38 +33,38 @@
 And the options,
 please refer to the documentation of the corresponding service for the corresponding parameters.
 Note that the current options key is snake_case.</p>
-</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L211">generated.d.ts:211</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="capability" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>capability</span><a href="#capability" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBo [...]
-</div><h4 class="tsd-returns-title">Returns <a href="Capability.html" class="tsd-signature-type tsd-kind-class">Capability</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L213">generated.d.ts:213</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</ [...]
+</div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L211">generated.d.ts:211</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="capability" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>capability</span><a href="#capability" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBo [...]
+</div><h4 class="tsd-returns-title">Returns <a href="Capability.html" class="tsd-signature-type tsd-kind-class">Capability</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L213">generated.d.ts:213</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</ [...]
 <p>We will send a <code>list</code> request to the given path and return any errors we met.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">check</span><span class="hl-1">();</span>
 </code><button>Copy</button></pre>
-</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L256">generated.d.ts:256</a></li></ul></aside></li></ul></section><section class [...]
+</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L256">generated.d.ts:256</a></li></ul></aside></li></ul></section><section class [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">copy</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">, </span><span class="hl-2">&quot;path/to/dest&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><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-s [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><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-s [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">copySync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">, </span><span class="hl-2">&quot;path/to/dest&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">createDir</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/dir/&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typ [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">createDirSync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/dir/&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generat [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generat [...]
 <a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>Delete not existing error won’t return errors.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">delete</span><span class="hl-1">(</span><span class="hl-2">&quot;test&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typ [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">deleteSync</span><span class="hl-1">(</span><span class="hl-2">&quot;test&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generat [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generat [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">isExist</span><span class="hl-1">(</span><span class="hl-2">&quot;test&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd- [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd- [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">isExistSync</span><span class="hl-1">(</span><span class="hl-2">&quot;test&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/gene [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">layer</span>: <a href="ExternalObject.html" class="tsd-signature-type tsd-kind-class">ExternalObject</a><span class="tsd-signature-symbol">&lt;</span><a href="Layer.html" class="tsd-signature-type tsd-kind-class">Layer</a><span class="tsd-signature-symbol">&gt;</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Op [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/gene [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">layer</span>: <a href="ExternalObject.html" class="tsd-signature-type tsd-kind-class">ExternalObject</a><span class="tsd-signature-symbol">&lt;</span><a href="Layer.html" class="tsd-signature-type tsd-kind-class">Layer</a><span class="tsd-signature-symbol">&gt;</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <a href="Op [...]
 <p>This function will return an array of entries.</p>
 <p>An error will be returned if given path doesn&#39;t end with <code>/</code>.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">list</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/dir/&quot;</span><span class="hl-1">);</span><br/ [...]
@@ -72,7 +72,7 @@ Note that the current options key is snake_case.</p>
 <a id="md:list-recursively" class="tsd-anchor"></a><h4><a href="#md:list-recursively">List recursively</a></h4><p>With <code>recursive</code> option, you can list recursively.</p>
 <pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">list</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/dir/&quot;</span><span class="hl-1">, { </span><span class="hl-6">recursive:</span><span class="hl-1"> </span><span class="hl-4">true [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
 <p>This function will return an array of entries.</p>
 <p>An error will be returned if given path doesn&#39;t end with <code>/</code>.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">listSync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/dir/&quot;</span><span class="hl-1">);</span><br/><span class="hl-5">for</span><span class="hl-1"> (</s [...]
@@ -80,45 +80,45 @@ Note that the current options key is snake_case.</p>
 <a id="md:list-recursively" class="tsd-anchor"></a><h4><a href="#md:list-recursively">List recursively</a></h4><p>With <code>recursive</code> option, you can list recursively.</p>
 <pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">list</span><span class="hl-1"> = </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">listSync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/dir/&quot;</span><span class="hl-1">, { </span><span class="hl-6">recursive:</span><span class="hl-1"> </span><span class="hl-4">true</span><span class="hl-1"> });</span><br/><span class= [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><a href="../interfaces/ListOptions.html" class="tsd-signature-type ts [...]
 <p>Unit of <code>expires</code> is seconds.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">req</span><span class="hl-1"> = </span><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">presignRead</span><span class="hl-1">(</span><span class="hl-6">path</span><span class="hl-1">, </span><span class="hl-0" [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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="../i [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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="../i [...]
 <p>Unit of <code>expires</code> is seconds.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">req</span><span class="hl-1"> = </span><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">presignStat</span><span class="hl-1">(</span><span class="hl-6">path</span><span class="hl-1">, </span><span class="hl-0" [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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="../i [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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="../i [...]
 <p>Unit of <code>expires</code> is seconds.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">req</span><span class="hl-1"> = </span><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">presignWrite</span><span class="hl-1">(</span><span class="hl-6">path</span><span class="hl-1">, </span><span class="hl-0 [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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="../i [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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="../i [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">buf</span><span class="hl-1"> = </span><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">read</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd- [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd- [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">buf</span><span class="hl-1"> = </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">readSync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/gene [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/gene [...]
 <p>It could be used to read large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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="Reader.html" class="tsd-signature-type tsd-kind-class">Reader</a><span class="tsd-signature-symbol">&gt;</span></h4>< [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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="Reader.html" class="tsd-signature-type tsd-kind-class">Reader</a><span class="tsd-signature-symbol">&gt;</span></h4>< [...]
 <p>It could be used to read large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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="BlockingReader.html" class="tsd-signature-type tsd-kind-class">BlockingReader</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apach [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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="BlockingReader.html" class="tsd-signature-type tsd-kind-class">BlockingReader</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apach [...]
 <a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>If underlying services support delete in batch, we will use batch delete instead.</p>
 <a id="md:examples" class="tsd-anchor"></a><h3><a href="#md:examples">Examples</a></h3><pre><code class="language-javascript"><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">remove</span><span class="hl-1">([</span><span class="hl-2">&quot;abc&quot;</span><span class="hl-1">, </span><span class="hl-2">&quot;def&quot;</span><span class="hl-1">]);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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">&g [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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">&g [...]
 <a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>If underlying services support delete in batch, we will use batch delete instead.</p>
 <a id="md:examples" class="tsd-anchor"></a><h3><a href="#md:examples">Examples</a></h3><pre><code class="language-javascript"><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">removeAll</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/dir/&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typ [...]
 <p>It&#39;s similar to <code>mv</code> command.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">rename</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">, </span><span class="hl-2">&quot;path/to/dest&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><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-s [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><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-s [...]
 <p>It&#39;s similar to <code>mv</code> command.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">renameSync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">, </span><span class="hl-2">&quot;path/to/dest&quot;</span><span class="hl-1">);</span>
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">from</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd [...]
 <a id="md:notes" class="tsd-anchor"></a><h3><a href="#md:notes">Notes</a></h3><p>Use stat if you:</p>
 <ul>
 <li>Want to detect the outside changes of a path.</li>
@@ -127,17 +127,17 @@ Note that the current options key is snake_case.</p>
 <p>You may want to use <code>metadata</code> if you are working with entries returned by <code>Lister</code>. It’s highly possible that metadata you want has already been cached.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">meta</span><span class="hl-1"> = </span><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">stat</span><span class="hl-1">(</span><span class="hl-2">&quot;test&quot;</span><span class="hl-1">);</span><br/><span c [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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></ [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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></ [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">meta</span><span class="hl-1"> = </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">statSync</span><span class="hl-1">(</span><span class="hl-2">&quot;test&quot;</span><span class="hl-1">);</span><br/><span class="hl-5">if</span><span class="hl-1"> (</span><span [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/bl [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/bl [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">write</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">, </span><span class="hl-6">Buffer</span><span class="hl-1">.</span><span class="hl-0">from</span><span class="hl-1">(</span><spa [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <s [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <s [...]
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">writeSync</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">, </span><span class="hl-6">Buffer</span><span class="hl-1">.</span><span class="hl-0">from</span><span class="hl-1">(</span><span class="hl-2">&quot;hello world&quot;</span><span cla [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <s [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <s [...]
 <p>It could be used to write large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><a href="../interfaces/WriterOptions.html" class="tsd-signature-type  [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><a href="../interfaces/WriterOptions.html" class="tsd-signature-type  [...]
 <p>It could be used to write large file in a streaming way.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><a href="../interfaces/WriterOptions.html" class="tsd-signature-type  [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li><li><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><a href="../interfaces/WriterOptions.html" class="tsd-signature-type  [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Reader.html b/docs/nodejs/classes/Reader.html
index c0f1b54c47..898bac4114 100644
--- a/docs/nodejs/classes/Reader.html
+++ b/docs/nodejs/classes/Reader.html
@@ -1,11 +1,11 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Reader | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=".. [...]
 manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L604">generated.d.ts:604</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/index.d.ts#L27">index.d.ts:27</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L604">generated.d.ts:604</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/index.d.ts#L27">index.d.ts:27</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Reader.html#createReadStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Read<wbr/>Stream</span></a>
 <a href="Reader.html#read" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>read</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Rea [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">ReadableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Readable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
 <p>&amp;mut self in async napi methods should be marked as unsafe</p>
 </blockquote>
 <p>Read bytes from this reader into given buffer.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">buf</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">bigint</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-t [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">buf</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">bigint</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-t [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/RetryLayer.html b/docs/nodejs/classes/RetryLayer.html
index a1ce3e56f6..a3bf9f142c 100644
--- a/docs/nodejs/classes/RetryLayer.html
+++ b/docs/nodejs/classes/RetryLayer.html
@@ -8,27 +8,27 @@ If the operation still failed, this layer will set error to
 visit <a href="https://github.com/apache/opendal/issues/1223">this issue</a> for more details.</p>
 <a id="md:examples" class="tsd-anchor"></a><h1><a href="#md:examples">Examples</a></h1><pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">op</span><span class="hl-1"> = </span><span class="hl-4">new</span><span class="hl-1"> </span><span class="hl-0">Operator</span><span class="hl-1">(</span><span class="hl-2">&quot;file&quot;</span><span class="hl-1">, { </span><span class="hl-6">root:</span><span class="hl-1"> </span><spa [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L738">generated.d.ts:738</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"><h5 class="tsd-index-heading uppercase" ro [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L738">generated.d.ts:738</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"><h5 class="tsd-index-heading uppercase" ro [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Accessors</h3><div class="tsd-index-list"><a href="RetryLayer.html#factor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>factor</span></a>
 <a href="RetryLayer.html#jitter" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>jitter</span></a>
 <a href="RetryLayer.html#maxDelay" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>max<wbr/>Delay</span></a>
 <a href="RetryLayer.html#maxTimes" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>max<wbr/>Times</span></a>
 <a href="RetryLayer.html#minDelay" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-262144"></use></svg><span>min<wbr/>Delay</span></a>
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="RetryLayer.html#build" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>build</span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ret [...]
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Constructors</h2><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_Ret [...]
 <a id="md:panics" class="tsd-anchor"></a><h1><a href="#md:panics">Panics</a></h1><p>This function will panic if the input factor is smaller than <code>1.0</code>.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated. [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated. [...]
 <p>If jitter is enabled, ExponentialBackoff will add a random jitter in <code>[0, min_delay)</code>
 to current delay.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">boolean</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">boolean</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated [...]
 <p>Delay will not increase if the current delay is larger than max_delay.</p>
 <a id="md:notes" class="tsd-anchor"></a><h1><a href="#md:notes">Notes</a></h1><ul>
 <li>The unit of max_delay is millisecond.</li>
 </ul>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated. [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated. [...]
 <p>Backoff will return <code>None</code> if max times are reached.</p>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated. [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated. [...]
 <a id="md:notes" class="tsd-anchor"></a><h1><a href="#md:notes">Notes</a></h1><ul>
 <li>The unit of min_delay is millisecond.</li>
 </ul>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated. [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><span class="tsd-kind-parameter">v</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated. [...]
\ No newline at end of file
diff --git a/docs/nodejs/classes/Writer.html b/docs/nodejs/classes/Writer.html
index e2158d5620..2ae1bb23cd 100644
--- a/docs/nodejs/classes/Writer.html
+++ b/docs/nodejs/classes/Writer.html
@@ -1,6 +1,6 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>Writer | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async src=".. [...]
 manner.</p>
-</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L655">generated.d.ts:655</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/index.d.ts#L37">index.d.ts:37</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
+</div><div class="tsd-comment tsd-typography"></div></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L655">generated.d.ts:655</a></li><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/index.d.ts#L37">index.d.ts:37</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content  [...]
 </div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="Writer.html#close" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>close</span></a>
 <a href="Writer.html#createWriteStream" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>create<wbr/>Write<wbr/>Stream</span></a>
 <a href="Writer.html#write" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-2048"></use></svg><span>write</span></a>
@@ -10,11 +10,11 @@ manner.</p>
 <p>Close this writer.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">writer</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">);</span> [...]
 </code><button>Copy</button></pre>
-</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L685">generated.d.ts:685</a></li></ul></aside></li></ul></section><section class [...]
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
+</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><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L685">generated.d.ts:685</a></li></ul></aside></li></ul></section><section class [...]
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type ">WritableOptions</span></h5></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Writable</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href [...]
 <p>&amp;mut self in async napi methods should be marked as unsafe</p>
 </blockquote>
 <p>Write bytes into this writer.</p>
 <a id="md:example" class="tsd-anchor"></a><h3><a href="#md:example">Example</a></h3><pre><code class="language-javascript"><span class="hl-4">const</span><span class="hl-1"> </span><span class="hl-7">writer</span><span class="hl-1"> = </span><span class="hl-5">await</span><span class="hl-1"> </span><span class="hl-6">op</span><span class="hl-1">.</span><span class="hl-0">writer</span><span class="hl-1">(</span><span class="hl-2">&quot;path/to/file&quot;</span><span class="hl-1">);</span> [...]
 </code><button>Copy</button></pre>
-</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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 [...]
\ No newline at end of file
+</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><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 [...]
\ No newline at end of file
diff --git a/docs/nodejs/interfaces/ListOptions.html b/docs/nodejs/interfaces/ListOptions.html
index 5776b1c0f6..58c6328b0f 100644
--- a/docs/nodejs/interfaces/ListOptions.html
+++ b/docs/nodejs/interfaces/ListOptions.html
@@ -1,3 +1,3 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ListOptions | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async sr [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>ListOptions | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async sr [...]
 <a href="ListOptions.html#recursive" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>recursive?</span></a>
-</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="limit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>limit</span><a href="#limit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">li [...]
\ No newline at end of file
+</div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="limit" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>limit</span><a href="#limit" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">li [...]
\ No newline at end of file
diff --git a/docs/nodejs/interfaces/PresignedRequest.html b/docs/nodejs/interfaces/PresignedRequest.html
index 680a827e3f..96773b3eac 100644
--- a/docs/nodejs/interfaces/PresignedRequest.html
+++ b/docs/nodejs/interfaces/PresignedRequest.html
@@ -1,8 +1,8 @@
 <!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>PresignedRequest | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script asy [...]
-</div><div class="tsd-comment tsd-typography"></div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">PresignedRequest </span><span class="tsd-signature-symbol">{ </span><br/><span>    </span><a class="tsd-kind-property" href="PresignedRequest.html#headers">headers</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol">&lt;</span><span class=" [...]
+</div><div class="tsd-comment tsd-typography"></div></section><div class="tsd-signature"><span class="tsd-signature-keyword">interface </span><span class="tsd-kind-interface">PresignedRequest </span><span class="tsd-signature-symbol">{ </span><br/><span>    </span><a class="tsd-kind-property" href="PresignedRequest.html#headers">headers</a><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol">&lt;</span><span class=" [...]
 <a href="PresignedRequest.html#method" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>method</span></a>
 <a href="PresignedRequest.html#url" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>url</span></a>
 </div></section></div></details></section></section><section class="tsd-panel-group tsd-member-group"><h2>Properties</h2><section class="tsd-panel tsd-member"><a id="headers" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>headers</span><a href="#headers" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">headers</span><span class="tsd-signature-symbol">: [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L100">generated.d.ts:100</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 viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg>< [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L96">generated.d.ts:96</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 viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><di [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L98">generated.d.ts:98</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="# [...]
\ No newline at end of file
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L100">generated.d.ts:100</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 viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg>< [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L96">generated.d.ts:96</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 viewBox="0 0 24 24"><use href="#icon-anchor"></use></svg></a></h3><di [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L98">generated.d.ts:98</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="# [...]
\ No newline at end of file
diff --git a/docs/nodejs/interfaces/WriteOptions.html b/docs/nodejs/interfaces/WriteOptions.html
index 850514b38d..ebaf93a102 100644
--- a/docs/nodejs/interfaces/WriteOptions.html
+++ b/docs/nodejs/interfaces/WriteOptions.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>WriteOptions | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async s [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>WriteOptions | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async s [...]
 <a href="WriteOptions.html#cacheControl" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>cache<wbr/>Control?</span></a>
 <a href="WriteOptions.html#chunk" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>chunk?</span></a>
 <a href="WriteOptions.html#contentDisposition" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>content<wbr/>Disposition?</span></a>
@@ -8,12 +8,12 @@
 <li>It always appends content to the end of the file.</li>
 <li>It will create file if the path does not exist.</li>
 </ul>
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L44">generated.d.ts:44</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="cacheControl" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>cache<wbr/>Control</span><a href="#cacheControl" aria-label="Permalink" class="tsd- [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L62">generated.d.ts:62</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="chunk" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>chunk</span><a href="#chunk" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox=" [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L44">generated.d.ts:44</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="cacheControl" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>cache<wbr/>Control</span><a href="#cacheControl" aria-label="Permalink" class="tsd- [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L62">generated.d.ts:62</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="chunk" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>chunk</span><a href="#chunk" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox=" [...]
 <p>If chunk is set, the data will be chunked by the underlying writer.</p>
 <a id="md:note" class="tsd-anchor"></a><h2><a href="#md:note">NOTE</a></h2><p>A service could have their own minimum chunk size while perform write
 operations like multipart uploads. So the chunk size may be larger than
 the given buffer size.</p>
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L56">generated.d.ts:56</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="contentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>content<wbr/>Disposition</span><a href="#contentDisposition" aria-label="Perm [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L60">generated.d.ts:60</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="contentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>content<wbr/>Type</span><a href="#contentType" aria-label="Permalink" class="tsd-anc [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L58">generated.d.ts:58</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="# [...]
\ No newline at end of file
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L56">generated.d.ts:56</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="contentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>content<wbr/>Disposition</span><a href="#contentDisposition" aria-label="Perm [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L60">generated.d.ts:60</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="contentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>content<wbr/>Type</span><a href="#contentType" aria-label="Permalink" class="tsd-anc [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L58">generated.d.ts:58</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="# [...]
\ No newline at end of file
diff --git a/docs/nodejs/interfaces/WriterOptions.html b/docs/nodejs/interfaces/WriterOptions.html
index 84b1f25a8a..f36bf6ea64 100644
--- a/docs/nodejs/interfaces/WriterOptions.html
+++ b/docs/nodejs/interfaces/WriterOptions.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>WriterOptions | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async  [...]
+<!DOCTYPE html><html class="default" lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>WriterOptions | Apache OpenDAL™ - v0.47.6</title><meta name="description" content="Documentation for Apache OpenDAL™"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><script defer src="../assets/main.js"></script><script async  [...]
 <a href="WriterOptions.html#cacheControl" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>cache<wbr/>Control?</span></a>
 <a href="WriterOptions.html#chunk" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>chunk?</span></a>
 <a href="WriterOptions.html#contentDisposition" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="#icon-1024"></use></svg><span>content<wbr/>Disposition?</span></a>
@@ -8,12 +8,12 @@
 <li>It always appends content to the end of the file.</li>
 <li>It will create file if the path does not exist.</li>
 </ul>
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L73">generated.d.ts:73</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="cacheControl" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>cache<wbr/>Control</span><a href="#cacheControl" aria-label="Permalink" class="tsd- [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L91">generated.d.ts:91</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="chunk" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>chunk</span><a href="#chunk" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox=" [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L73">generated.d.ts:73</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="cacheControl" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>cache<wbr/>Control</span><a href="#cacheControl" aria-label="Permalink" class="tsd- [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L91">generated.d.ts:91</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="chunk" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>chunk</span><a href="#chunk" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox=" [...]
 <p>If chunk is set, the data will be chunked by the underlying writer.</p>
 <a id="md:note" class="tsd-anchor"></a><h2><a href="#md:note">NOTE</a></h2><p>A service could have their own minimum chunk size while perform write
 operations like multipart uploads. So the chunk size may be larger than
 the given buffer size.</p>
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L85">generated.d.ts:85</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="contentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>content<wbr/>Disposition</span><a href="#contentDisposition" aria-label="Perm [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L89">generated.d.ts:89</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="contentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>content<wbr/>Type</span><a href="#contentType" aria-label="Permalink" class="tsd-anc [...]
-</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/fe48918/bindings/nodejs/generated.d.ts#L87">generated.d.ts:87</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="# [...]
\ No newline at end of file
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L85">generated.d.ts:85</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="contentDisposition" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>content<wbr/>Disposition</span><a href="#contentDisposition" aria-label="Perm [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L89">generated.d.ts:89</a></li></ul></aside></section><section class="tsd-panel tsd-member"><a id="contentType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag ts-flagOptional">Optional</code> <span>content<wbr/>Type</span><a href="#contentType" aria-label="Permalink" class="tsd-anc [...]
+</div><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/apache/opendal/blob/b9e06bf/bindings/nodejs/generated.d.ts#L87">generated.d.ts:87</a></li></ul></aside></section></section></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-index-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="# [...]
\ No newline at end of file
diff --git a/docs/object-store-opendal/object_store_opendal/struct.OpendalStore.html b/docs/object-store-opendal/object_store_opendal/struct.OpendalStore.html
index eaccfdaca0..ce46af6cab 100644
--- a/docs/object-store-opendal/object_store_opendal/struct.OpendalStore.html
+++ b/docs/object-store-opendal/object_store_opendal/struct.OpendalStore.html
@@ -46,7 +46,7 @@
     <span class="macro">assert_eq!</span>(content, bytes);
 }</code></pre></div>
 </div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-OpendalStore" class="impl"><a class="src rightside" href="../src/object_store_opendal/store.rs.html#103-121">source</a><a href="#impl-OpendalStore" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.OpendalStore.html" title=" [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="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-Debug-for-OpendalStore" class="impl"><a class="src rightside" href="../src/object_store_opendal/store.rs.html#123-132">source</a><a href="#impl-Debug-for-OpendalStore" class="anchor">§</a><h3 class="code-head [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="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-Debug-for-OpendalStore" class="impl"><a class="src rightside" href="../src/object_store_opendal/store.rs.html#123-132">source</a><a href="#impl-Debug-for-OpendalStore" class="anchor">§</a><h3 class="code-head [...]
     &amp;'life0 self,
     location: &amp;'life1 Path,
     bytes: PutPayload,
diff --git a/docs/object-store-opendal/search-index.js b/docs/object-store-opendal/search-index.js
index f0f98808dc..4f1b3f1b2c 100644
--- a/docs/object-store-opendal/search-index.js
+++ b/docs/object-store-opendal/search-index.js
@@ -1 +1 @@
-var searchIndex=new Map(JSON.parse('[["object_store_opendal",{"t":"FNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["OpendalStore","borrow","borrow_mut","copy","copy_if_not_exists","delete","fmt","fmt","from","from","get","get_opts","get_range","head","into","list","list_with_delimiter","list_with_offset","new","put","put_multipart","put_multipart_opts","put_opts","rename","to_string","try_from","try_into","type_id"],"q":[[0,"object_store_opendal"],[28,"object_store_opendal::store"],[29,"object_store: [...]
\ No newline at end of file
+var searchIndex=new Map(JSON.parse('[["object_store_opendal",{"t":"FNNNNNNNNNNNNNNNNNNNNNNNNNNN","n":["OpendalStore","borrow","borrow_mut","copy","copy_if_not_exists","delete","fmt","fmt","from","from","get","get_opts","get_range","head","into","list","list_with_delimiter","list_with_offset","new","put","put_multipart","put_multipart_opts","put_opts","rename","to_string","try_from","try_into","type_id"],"q":[[0,"object_store_opendal"],[28,"object_store_opendal::store"],[29,"object_store: [...]
\ No newline at end of file
diff --git a/docs/object-store/index.html b/docs/object-store/index.html
index ced4224463..82abce0825 100644
--- a/docs/object-store/index.html
+++ b/docs/object-store/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">object_store Integration | 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/object-store"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en" [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/overview/index.html b/docs/overview/index.html
index 0c9235061e..814526fbb6 100644
--- a/docs/overview/index.html
+++ b/docs/overview/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Welcome to Apache OpenDAL™ | 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" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en">< [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/python/opendal.html b/docs/python/opendal.html
index fbfebea3c6..f3a06944c7 100644
--- a/docs/python/opendal.html
+++ b/docs/python/opendal.html
@@ -243,16 +243,16 @@
                                 <a class="variable" href="#Metadata.content_md5">content_md5</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Metadata.content_length">content_length</a>
+                                <a class="variable" href="#Metadata.content_type">content_type</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Metadata.etag">etag</a>
+                                <a class="variable" href="#Metadata.content_length">content_length</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Metadata.content_type">content_type</a>
+                                <a class="variable" href="#Metadata.content_disposition">content_disposition</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Metadata.content_disposition">content_disposition</a>
+                                <a class="variable" href="#Metadata.etag">etag</a>
                         </li>
                         <li>
                                 <a class="variable" href="#Metadata.mode">mode</a>
@@ -264,10 +264,10 @@
                     <a class="class" href="#PresignedRequest">PresignedRequest</a>
                             <ul class="memberlist">
                         <li>
-                                <a class="variable" href="#PresignedRequest.headers">headers</a>
+                                <a class="variable" href="#PresignedRequest.url">url</a>
                         </li>
                         <li>
-                                <a class="variable" href="#PresignedRequest.url">url</a>
+                                <a class="variable" href="#PresignedRequest.headers">headers</a>
                         </li>
                         <li>
                                 <a class="variable" href="#PresignedRequest.method">method</a>
@@ -279,112 +279,112 @@
                     <a class="class" href="#Capability">Capability</a>
                             <ul class="memberlist">
                         <li>
-                                <a class="variable" href="#Capability.write_total_max_size">write_total_max_size</a>
+                                <a class="variable" href="#Capability.stat_with_if_match">stat_with_if_match</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.batch_delete">batch_delete</a>
+                                <a class="variable" href="#Capability.write_with_content_disposition">write_with_content_disposition</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.delete">delete</a>
+                                <a class="variable" href="#Capability.write_can_multi">write_can_multi</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_multi_min_size">write_multi_min_size</a>
+                                <a class="variable" href="#Capability.delete">delete</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.read_with_override_content_disposition">read_with_override_content_disposition</a>
+                                <a class="variable" href="#Capability.stat_with_if_none_match">stat_with_if_none_match</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write">write</a>
+                                <a class="variable" href="#Capability.write_can_empty">write_can_empty</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.copy">copy</a>
+                                <a class="variable" href="#Capability.stat">stat</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.presign_stat">presign_stat</a>
+                                <a class="variable" href="#Capability.write_with_cache_control">write_with_cache_control</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.read_with_if_none_match">read_with_if_none_match</a>
+                                <a class="variable" href="#Capability.write_can_append">write_can_append</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_can_empty">write_can_empty</a>
+                                <a class="variable" href="#Capability.presign_read">presign_read</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.read_with_override_content_type">read_with_override_content_type</a>
+                                <a class="variable" href="#Capability.presign">presign</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.list_with_limit">list_with_limit</a>
+                                <a class="variable" href="#Capability.write_with_content_type">write_with_content_type</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.list_with_recursive">list_with_recursive</a>
+                                <a class="variable" href="#Capability.list">list</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.batch_max_operations">batch_max_operations</a>
+                                <a class="variable" href="#Capability.blocking">blocking</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.batch">batch</a>
+                                <a class="variable" href="#Capability.write_multi_min_size">write_multi_min_size</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.read_with_if_match">read_with_if_match</a>
+                                <a class="variable" href="#Capability.copy">copy</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.blocking">blocking</a>
+                                <a class="variable" href="#Capability.read">read</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.create_dir">create_dir</a>
+                                <a class="variable" href="#Capability.write">write</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_with_content_type">write_with_content_type</a>
+                                <a class="variable" href="#Capability.rename">rename</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.presign_write">presign_write</a>
+                                <a class="variable" href="#Capability.read_with_override_content_type">read_with_override_content_type</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_with_content_disposition">write_with_content_disposition</a>
+                                <a class="variable" href="#Capability.list_with_limit">list_with_limit</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_with_cache_control">write_with_cache_control</a>
+                                <a class="variable" href="#Capability.batch_delete">batch_delete</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_can_multi">write_can_multi</a>
+                                <a class="variable" href="#Capability.list_with_start_after">list_with_start_after</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.read_with_override_cache_control">read_with_override_cache_control</a>
+                                <a class="variable" href="#Capability.write_multi_max_size">write_multi_max_size</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.read">read</a>
+                                <a class="variable" href="#Capability.create_dir">create_dir</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_multi_align_size">write_multi_align_size</a>
+                                <a class="variable" href="#Capability.list_with_recursive">list_with_recursive</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.list">list</a>
+                                <a class="variable" href="#Capability.presign_write">presign_write</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.presign">presign</a>
+                                <a class="variable" href="#Capability.batch">batch</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.rename">rename</a>
+                                <a class="variable" href="#Capability.read_with_if_match">read_with_if_match</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.presign_read">presign_read</a>
+                                <a class="variable" href="#Capability.presign_stat">presign_stat</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.stat_with_if_none_match">stat_with_if_none_match</a>
+                                <a class="variable" href="#Capability.batch_max_operations">batch_max_operations</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.stat_with_if_match">stat_with_if_match</a>
+                                <a class="variable" href="#Capability.write_multi_align_size">write_multi_align_size</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.list_with_start_after">list_with_start_after</a>
+                                <a class="variable" href="#Capability.write_total_max_size">write_total_max_size</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.stat">stat</a>
+                                <a class="variable" href="#Capability.read_with_if_none_match">read_with_if_none_match</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_can_append">write_can_append</a>
+                                <a class="variable" href="#Capability.read_with_override_cache_control">read_with_override_cache_control</a>
                         </li>
                         <li>
-                                <a class="variable" href="#Capability.write_multi_max_size">write_multi_max_size</a>
+                                <a class="variable" href="#Capability.read_with_override_content_disposition">read_with_override_content_disposition</a>
                         </li>
                 </ul>
 
@@ -1445,54 +1445,54 @@ 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.content_type" class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_length</span>
+            <span class="name">content_type</span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.content_length"></a>
+    <a class="headerlink" href="#Metadata.content_type"></a>
     
-            <div class="docstring"><p>Content length of this entry.</p>
+            <div class="docstring"><p>Content Type of this entry.</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="name">content_length</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>
 
 
                             </div>
-                            <div id="Metadata.content_type" class="classattr">
+                            <div id="Metadata.content_disposition" class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_type</span>
+            <span class="name">content_disposition</span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.content_type"></a>
+    <a class="headerlink" href="#Metadata.content_disposition"></a>
+    
     
-            <div class="docstring"><p>Content Type of this entry.</p>
-</div>
-
 
                             </div>
-                            <div id="Metadata.content_disposition" class="classattr">
+                            <div id="Metadata.etag" class="classattr">
                                 <div class="attr variable">
-            <span class="name">content_disposition</span>
+            <span class="name">etag</span>
 
         
     </div>
-    <a class="headerlink" href="#Metadata.content_disposition"></a>
-    
+    <a class="headerlink" href="#Metadata.etag"></a>
     
+            <div class="docstring"><p>ETag of this entry.</p>
+</div>
+
 
                             </div>
                             <div id="Metadata.mode" class="classattr">
@@ -1521,28 +1521,28 @@ The default value for whence is <code>SEEK_SET</code>. Values for <code>whence</
     
     
 
-                            <div id="PresignedRequest.headers" class="classattr">
+                            <div id="PresignedRequest.url" class="classattr">
                                 <div class="attr variable">
-            <span class="name">headers</span>
+            <span class="name">url</span>
 
         
     </div>
-    <a class="headerlink" href="#PresignedRequest.headers"></a>
+    <a class="headerlink" href="#PresignedRequest.url"></a>
     
-            <div class="docstring"><p>Return the HTTP headers of this request.</p>
+            <div class="docstring"><p>Return the URL of this request.</p>
 </div>
 
 
                             </div>
-                            <div id="PresignedRequest.url" class="classattr">
+                            <div id="PresignedRequest.headers" class="classattr">
                                 <div class="attr variable">
-            <span class="name">url</span>
+            <span class="name">headers</span>
 
         
     </div>
-    <a class="headerlink" href="#PresignedRequest.url"></a>
+    <a class="headerlink" href="#PresignedRequest.headers"></a>
     
-            <div class="docstring"><p>Return the URL of this request.</p>
+            <div class="docstring"><p>Return the HTTP headers of this request.</p>
 </div>
 
 
@@ -1576,478 +1576,478 @@ by current Operator.</p>
 </div>
 
 
-                            <div id="Capability.write_total_max_size" class="classattr">
+                            <div id="Capability.stat_with_if_match" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_total_max_size</span>
+            <span class="name">stat_with_if_match</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_total_max_size"></a>
+    <a class="headerlink" href="#Capability.stat_with_if_match"></a>
     
-            <div class="docstring"><p>write_total_max_size is the max size that services support in write_total.</p>
-
-<p>For example, Cloudflare D1 supports 1MB as max in write_total.</p>
+            <div class="docstring"><p>If operator supports stat with if match.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.batch_delete" class="classattr">
+                            <div id="Capability.write_with_content_disposition" class="classattr">
                                 <div class="attr variable">
-            <span class="name">batch_delete</span>
+            <span class="name">write_with_content_disposition</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.batch_delete"></a>
+    <a class="headerlink" href="#Capability.write_with_content_disposition"></a>
     
-            <div class="docstring"><p>If operator supports batch delete.</p>
+            <div class="docstring"><p>If operator supports write with content disposition.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.delete" class="classattr">
+                            <div id="Capability.write_can_multi" class="classattr">
                                 <div class="attr variable">
-            <span class="name">delete</span>
+            <span class="name">write_can_multi</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.delete"></a>
+    <a class="headerlink" href="#Capability.write_can_multi"></a>
     
-            <div class="docstring"><p>If operator supports delete.</p>
+            <div class="docstring"><p>If operator supports write can be called in multi times.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_multi_min_size" class="classattr">
+                            <div id="Capability.delete" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_multi_min_size</span>
+            <span class="name">delete</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_multi_min_size"></a>
+    <a class="headerlink" href="#Capability.delete"></a>
     
-            <div class="docstring"><p>write_multi_min_size is the min size that services support in write_multi.</p>
-
-<p>For example, AWS S3 requires at least 5MiB in write_multi expect the last one.</p>
+            <div class="docstring"><p>If operator supports delete.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.read_with_override_content_disposition" class="classattr">
+                            <div id="Capability.stat_with_if_none_match" class="classattr">
                                 <div class="attr variable">
-            <span class="name">read_with_override_content_disposition</span>
+            <span class="name">stat_with_if_none_match</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.read_with_override_content_disposition"></a>
+    <a class="headerlink" href="#Capability.stat_with_if_none_match"></a>
     
-            <div class="docstring"><p>if operator supports read with override content disposition.</p>
+            <div class="docstring"><p>If operator supports stat with if none match.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write" class="classattr">
+                            <div id="Capability.write_can_empty" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write</span>
+            <span class="name">write_can_empty</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write"></a>
+    <a class="headerlink" href="#Capability.write_can_empty"></a>
     
-            <div class="docstring"><p>If operator supports write.</p>
+            <div class="docstring"><p>If operator supports write with empty content.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.copy" class="classattr">
+                            <div id="Capability.stat" class="classattr">
                                 <div class="attr variable">
-            <span class="name">copy</span>
+            <span class="name">stat</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.copy"></a>
+    <a class="headerlink" href="#Capability.stat"></a>
     
-            <div class="docstring"><p>If operator supports copy.</p>
+            <div class="docstring"><p>If operator supports stat.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.presign_stat" class="classattr">
+                            <div id="Capability.write_with_cache_control" class="classattr">
                                 <div class="attr variable">
-            <span class="name">presign_stat</span>
+            <span class="name">write_with_cache_control</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.presign_stat"></a>
+    <a class="headerlink" href="#Capability.write_with_cache_control"></a>
     
-            <div class="docstring"><p>If operator supports presign stat.</p>
+            <div class="docstring"><p>If operator supports write with cache control.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.read_with_if_none_match" class="classattr">
+                            <div id="Capability.write_can_append" class="classattr">
                                 <div class="attr variable">
-            <span class="name">read_with_if_none_match</span>
+            <span class="name">write_can_append</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.read_with_if_none_match"></a>
+    <a class="headerlink" href="#Capability.write_can_append"></a>
     
-            <div class="docstring"><p>If operator supports read with if none match.</p>
+            <div class="docstring"><p>If operator supports write by append.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_can_empty" class="classattr">
+                            <div id="Capability.presign_read" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_can_empty</span>
+            <span class="name">presign_read</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_can_empty"></a>
+    <a class="headerlink" href="#Capability.presign_read"></a>
     
-            <div class="docstring"><p>If operator supports write with empty content.</p>
+            <div class="docstring"><p>If operator supports presign read.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.read_with_override_content_type" class="classattr">
+                            <div id="Capability.presign" class="classattr">
                                 <div class="attr variable">
-            <span class="name">read_with_override_content_type</span>
+            <span class="name">presign</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.read_with_override_content_type"></a>
+    <a class="headerlink" href="#Capability.presign"></a>
     
-            <div class="docstring"><p>if operator supports read with override content type.</p>
+            <div class="docstring"><p>If operator supports presign.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.list_with_limit" class="classattr">
+                            <div id="Capability.write_with_content_type" class="classattr">
                                 <div class="attr variable">
-            <span class="name">list_with_limit</span>
+            <span class="name">write_with_content_type</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.list_with_limit"></a>
+    <a class="headerlink" href="#Capability.write_with_content_type"></a>
     
-            <div class="docstring"><p>If backend supports list with limit.</p>
+            <div class="docstring"><p>If operator supports write with content type.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.list_with_recursive" class="classattr">
+                            <div id="Capability.list" class="classattr">
                                 <div class="attr variable">
-            <span class="name">list_with_recursive</span>
+            <span class="name">list</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.list_with_recursive"></a>
+    <a class="headerlink" href="#Capability.list"></a>
     
-            <div class="docstring"><p>If backend supports list without delimiter.</p>
+            <div class="docstring"><p>If operator supports list.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.batch_max_operations" class="classattr">
+                            <div id="Capability.blocking" class="classattr">
                                 <div class="attr variable">
-            <span class="name">batch_max_operations</span>
+            <span class="name">blocking</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.batch_max_operations"></a>
+    <a class="headerlink" href="#Capability.blocking"></a>
     
-            <div class="docstring"><p>The max operations that operator supports in batch.</p>
+            <div class="docstring"><p>If operator supports blocking.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.batch" class="classattr">
+                            <div id="Capability.write_multi_min_size" class="classattr">
                                 <div class="attr variable">
-            <span class="name">batch</span>
+            <span class="name">write_multi_min_size</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.batch"></a>
+    <a class="headerlink" href="#Capability.write_multi_min_size"></a>
     
-            <div class="docstring"><p>If operator supports batch.</p>
+            <div class="docstring"><p>write_multi_min_size is the min size that services support in write_multi.</p>
+
+<p>For example, AWS S3 requires at least 5MiB in write_multi expect the last one.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.read_with_if_match" class="classattr">
+                            <div id="Capability.copy" class="classattr">
                                 <div class="attr variable">
-            <span class="name">read_with_if_match</span>
+            <span class="name">copy</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.read_with_if_match"></a>
+    <a class="headerlink" href="#Capability.copy"></a>
     
-            <div class="docstring"><p>If operator supports read with if match.</p>
+            <div class="docstring"><p>If operator supports copy.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.blocking" class="classattr">
+                            <div id="Capability.read" class="classattr">
                                 <div class="attr variable">
-            <span class="name">blocking</span>
+            <span class="name">read</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.blocking"></a>
+    <a class="headerlink" href="#Capability.read"></a>
     
-            <div class="docstring"><p>If operator supports blocking.</p>
+            <div class="docstring"><p>If operator supports read.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.create_dir" class="classattr">
+                            <div id="Capability.write" class="classattr">
                                 <div class="attr variable">
-            <span class="name">create_dir</span>
+            <span class="name">write</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.create_dir"></a>
+    <a class="headerlink" href="#Capability.write"></a>
     
-            <div class="docstring"><p>If operator supports create dir.</p>
+            <div class="docstring"><p>If operator supports write.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_with_content_type" class="classattr">
+                            <div id="Capability.rename" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_with_content_type</span>
+            <span class="name">rename</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_with_content_type"></a>
+    <a class="headerlink" href="#Capability.rename"></a>
     
-            <div class="docstring"><p>If operator supports write with content type.</p>
+            <div class="docstring"><p>If operator supports rename.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.presign_write" class="classattr">
+                            <div id="Capability.read_with_override_content_type" class="classattr">
                                 <div class="attr variable">
-            <span class="name">presign_write</span>
+            <span class="name">read_with_override_content_type</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.presign_write"></a>
+    <a class="headerlink" href="#Capability.read_with_override_content_type"></a>
     
-            <div class="docstring"><p>If operator supports presign write.</p>
+            <div class="docstring"><p>if operator supports read with override content type.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_with_content_disposition" class="classattr">
+                            <div id="Capability.list_with_limit" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_with_content_disposition</span>
+            <span class="name">list_with_limit</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_with_content_disposition"></a>
+    <a class="headerlink" href="#Capability.list_with_limit"></a>
     
-            <div class="docstring"><p>If operator supports write with content disposition.</p>
+            <div class="docstring"><p>If backend supports list with limit.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_with_cache_control" class="classattr">
+                            <div id="Capability.batch_delete" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_with_cache_control</span>
+            <span class="name">batch_delete</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_with_cache_control"></a>
+    <a class="headerlink" href="#Capability.batch_delete"></a>
     
-            <div class="docstring"><p>If operator supports write with cache control.</p>
+            <div class="docstring"><p>If operator supports batch delete.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_can_multi" class="classattr">
+                            <div id="Capability.list_with_start_after" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_can_multi</span>
+            <span class="name">list_with_start_after</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_can_multi"></a>
+    <a class="headerlink" href="#Capability.list_with_start_after"></a>
     
-            <div class="docstring"><p>If operator supports write can be called in multi times.</p>
+            <div class="docstring"><p>If backend supports list with start after.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.read_with_override_cache_control" class="classattr">
+                            <div id="Capability.write_multi_max_size" class="classattr">
                                 <div class="attr variable">
-            <span class="name">read_with_override_cache_control</span>
+            <span class="name">write_multi_max_size</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.read_with_override_cache_control"></a>
+    <a class="headerlink" href="#Capability.write_multi_max_size"></a>
     
-            <div class="docstring"><p>if operator supports read with override cache control.</p>
+            <div class="docstring"><p>write_multi_max_size is the max size that services support in write_multi.</p>
+
+<p>For example, AWS S3 supports 5GiB as max in write_multi.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.read" class="classattr">
+                            <div id="Capability.create_dir" class="classattr">
                                 <div class="attr variable">
-            <span class="name">read</span>
+            <span class="name">create_dir</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.read"></a>
+    <a class="headerlink" href="#Capability.create_dir"></a>
     
-            <div class="docstring"><p>If operator supports read.</p>
+            <div class="docstring"><p>If operator supports create dir.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_multi_align_size" class="classattr">
+                            <div id="Capability.list_with_recursive" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_multi_align_size</span>
+            <span class="name">list_with_recursive</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_multi_align_size"></a>
+    <a class="headerlink" href="#Capability.list_with_recursive"></a>
     
-            <div class="docstring"><p>write_multi_align_size is the align size that services required in write_multi.</p>
-
-<p>For example, Google GCS requires align size to 256KiB in write_multi.</p>
+            <div class="docstring"><p>If backend supports list without delimiter.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.list" class="classattr">
+                            <div id="Capability.presign_write" class="classattr">
                                 <div class="attr variable">
-            <span class="name">list</span>
+            <span class="name">presign_write</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.list"></a>
+    <a class="headerlink" href="#Capability.presign_write"></a>
     
-            <div class="docstring"><p>If operator supports list.</p>
+            <div class="docstring"><p>If operator supports presign write.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.presign" class="classattr">
+                            <div id="Capability.batch" class="classattr">
                                 <div class="attr variable">
-            <span class="name">presign</span>
+            <span class="name">batch</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.presign"></a>
+    <a class="headerlink" href="#Capability.batch"></a>
     
-            <div class="docstring"><p>If operator supports presign.</p>
+            <div class="docstring"><p>If operator supports batch.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.rename" class="classattr">
+                            <div id="Capability.read_with_if_match" class="classattr">
                                 <div class="attr variable">
-            <span class="name">rename</span>
+            <span class="name">read_with_if_match</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.rename"></a>
+    <a class="headerlink" href="#Capability.read_with_if_match"></a>
     
-            <div class="docstring"><p>If operator supports rename.</p>
+            <div class="docstring"><p>If operator supports read with if match.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.presign_read" class="classattr">
+                            <div id="Capability.presign_stat" class="classattr">
                                 <div class="attr variable">
-            <span class="name">presign_read</span>
+            <span class="name">presign_stat</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.presign_read"></a>
+    <a class="headerlink" href="#Capability.presign_stat"></a>
     
-            <div class="docstring"><p>If operator supports presign read.</p>
+            <div class="docstring"><p>If operator supports presign stat.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.stat_with_if_none_match" class="classattr">
+                            <div id="Capability.batch_max_operations" class="classattr">
                                 <div class="attr variable">
-            <span class="name">stat_with_if_none_match</span>
+            <span class="name">batch_max_operations</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.stat_with_if_none_match"></a>
+    <a class="headerlink" href="#Capability.batch_max_operations"></a>
     
-            <div class="docstring"><p>If operator supports stat with if none match.</p>
+            <div class="docstring"><p>The max operations that operator supports in batch.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.stat_with_if_match" class="classattr">
+                            <div id="Capability.write_multi_align_size" class="classattr">
                                 <div class="attr variable">
-            <span class="name">stat_with_if_match</span>
+            <span class="name">write_multi_align_size</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.stat_with_if_match"></a>
+    <a class="headerlink" href="#Capability.write_multi_align_size"></a>
     
-            <div class="docstring"><p>If operator supports stat with if match.</p>
+            <div class="docstring"><p>write_multi_align_size is the align size that services required in write_multi.</p>
+
+<p>For example, Google GCS requires align size to 256KiB in write_multi.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.list_with_start_after" class="classattr">
+                            <div id="Capability.write_total_max_size" class="classattr">
                                 <div class="attr variable">
-            <span class="name">list_with_start_after</span>
+            <span class="name">write_total_max_size</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.list_with_start_after"></a>
+    <a class="headerlink" href="#Capability.write_total_max_size"></a>
     
-            <div class="docstring"><p>If backend supports list with start after.</p>
+            <div class="docstring"><p>write_total_max_size is the max size that services support in write_total.</p>
+
+<p>For example, Cloudflare D1 supports 1MB as max in write_total.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.stat" class="classattr">
+                            <div id="Capability.read_with_if_none_match" class="classattr">
                                 <div class="attr variable">
-            <span class="name">stat</span>
+            <span class="name">read_with_if_none_match</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.stat"></a>
+    <a class="headerlink" href="#Capability.read_with_if_none_match"></a>
     
-            <div class="docstring"><p>If operator supports stat.</p>
+            <div class="docstring"><p>If operator supports read with if none match.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_can_append" class="classattr">
+                            <div id="Capability.read_with_override_cache_control" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_can_append</span>
+            <span class="name">read_with_override_cache_control</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_can_append"></a>
+    <a class="headerlink" href="#Capability.read_with_override_cache_control"></a>
     
-            <div class="docstring"><p>If operator supports write by append.</p>
+            <div class="docstring"><p>if operator supports read with override cache control.</p>
 </div>
 
 
                             </div>
-                            <div id="Capability.write_multi_max_size" class="classattr">
+                            <div id="Capability.read_with_override_content_disposition" class="classattr">
                                 <div class="attr variable">
-            <span class="name">write_multi_max_size</span>
+            <span class="name">read_with_override_content_disposition</span>
 
         
     </div>
-    <a class="headerlink" href="#Capability.write_multi_max_size"></a>
+    <a class="headerlink" href="#Capability.read_with_override_content_disposition"></a>
     
-            <div class="docstring"><p>write_multi_max_size is the max size that services support in write_multi.</p>
-
-<p>For example, AWS S3 supports 5GiB as max in write_multi.</p>
+            <div class="docstring"><p>if operator supports read with override content disposition.</p>
 </div>
 
 
diff --git a/docs/python/search.js b/docs/python/search.js
index db5ef8a454..fbd76cdc02 100644
--- a/docs/python/search.js
+++ b/docs/python/search.js
@@ -1 +1 @@
-window.pdocSearch=function(){!function(){var e=function(a){var t=new e.Index;return t.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),a&&a.call(t,t),t};e.version="0.9.5",lunr=e,e.utils={},e.utils.warn=function(e){return function(a){e.console&&console.warn&&console.warn(a)}}(this),e.utils.toString=function(e){return null==e?"":e.toString()},e.EventEmitter=function(){this.events={}},e.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),a=e.pop(),t=e [...]
\ No newline at end of file
+window.pdocSearch=function(){!function(){var e=function(a){var t=new e.Index;return t.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),a&&a.call(t,t),t};e.version="0.9.5",lunr=e,e.utils={},e.utils.warn=function(e){return function(a){e.console&&console.warn&&console.warn(a)}}(this),e.utils.toString=function(e){return null==e?"":e.toString()},e.EventEmitter=function(){this.events={}},e.EventEmitter.prototype.addListener=function(){var e=Array.prototype.slice.call(arguments),a=e.pop(),t=e [...]
\ No newline at end of file
diff --git a/docs/quickstart/index.html b/docs/quickstart/index.html
index 1c0af9cc72..79dda7b899 100644
--- a/docs/quickstart/index.html
+++ b/docs/quickstart/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Quickstart | 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/quickstart"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><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.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/docs/rust-core/index.html b/docs/rust-core/index.html
index 7a03e95b4e..b8ff39e5cd 100644
--- a/docs/rust-core/index.html
+++ b/docs/rust-core/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Rust Core | 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/rust-core"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="tr [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/download/index.html b/download/index.html
index 459324cd75..180192cb8a 100644
--- a/download/index.html
+++ b/download/index.html
@@ -6,7 +6,7 @@
 <title data-rh="true">Apache OpenDAL™ Downloads | 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" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta  [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/index.html b/index.html
index 02b08c24bd..d1824cbb60 100644
--- a/index.html
+++ b/index.html
@@ -6,7 +6,7 @@
 <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" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusauru [...]
 <link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL™ Atom Feed"><link rel="stylesheet" href="/assets/css/styles.b86df8bd.css">
 <script src="/assets/js/runtime~main.21a640b7.js" defer="defer"></script>
-<script src="/assets/js/main.4d75fedb.js" defer="defer"></script>
+<script src="/assets/js/main.b36b73b7.js" defer="defer"></script>
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();t(null!==e?e:"light")}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentEle [...]
diff --git a/lunr-index-1730378929944.json b/lunr-index-1730378929944.json
deleted file mode 100644
index e84bd74848..0000000000
--- a/lunr-index-1730378929944.json
+++ /dev/null
@@ -1 +0,0 @@
-{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,191.155,1,70.563,2,698.454,3,576.221,4,698.454]],["content/0",[]],["keywords/0",[]],["title/1",[5,1291.082]],["content/1",[6,12.242,7,12.242,8,12.242,9,6.539,10,10.1,11,12.242,12,12.242,13,12.242,14,6.179,15,12.242,16,12.242,17,12.242,18,12.242,19,12.242,20,5.285,21,12.242,22,12.242,23,10.951,24,12.242,25,12.242,26,7.856,27,9.464]],["keywords/1",[]],["title/2",[14,651.644]],["content/2",[3,10.952,28, [...]
\ No newline at end of file
diff --git a/lunr-index-1730442319077.json b/lunr-index-1730442319077.json
new file mode 100644
index 0000000000..c20a0633e1
--- /dev/null
+++ b/lunr-index-1730442319077.json
@@ -0,0 +1 @@
+{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,191.155,1,70.563,2,698.454,3,576.221,4,698.454]],["content/0",[]],["keywords/0",[]],["title/1",[5,1291.082]],["content/1",[6,12.242,7,12.242,8,12.242,9,6.539,10,10.1,11,12.242,12,12.242,13,12.242,14,6.179,15,12.242,16,12.242,17,12.242,18,12.242,19,12.242,20,5.285,21,12.242,22,12.242,23,10.951,24,12.242,25,12.242,26,7.856,27,9.464]],["keywords/1",[]],["title/2",[14,651.644]],["content/2",[3,10.952,28, [...]
\ No newline at end of file
diff --git a/lunr-index.json b/lunr-index.json
index e84bd74848..c20a0633e1 100644
--- a/lunr-index.json
+++ b/lunr-index.json
@@ -1 +1 @@
-{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,191.155,1,70.563,2,698.454,3,576.221,4,698.454]],["content/0",[]],["keywords/0",[]],["title/1",[5,1291.082]],["content/1",[6,12.242,7,12.242,8,12.242,9,6.539,10,10.1,11,12.242,12,12.242,13,12.242,14,6.179,15,12.242,16,12.242,17,12.242,18,12.242,19,12.242,20,5.285,21,12.242,22,12.242,23,10.951,24,12.242,25,12.242,26,7.856,27,9.464]],["keywords/1",[]],["title/2",[14,651.644]],["content/2",[3,10.952,28, [...]
\ No newline at end of file
+{"version":"2.3.9","fields":["title","content","keywords"],"fieldVectors":[["title/0",[0,191.155,1,70.563,2,698.454,3,576.221,4,698.454]],["content/0",[]],["keywords/0",[]],["title/1",[5,1291.082]],["content/1",[6,12.242,7,12.242,8,12.242,9,6.539,10,10.1,11,12.242,12,12.242,13,12.242,14,6.179,15,12.242,16,12.242,17,12.242,18,12.242,19,12.242,20,5.285,21,12.242,22,12.242,23,10.951,24,12.242,25,12.242,26,7.856,27,9.464]],["keywords/1",[]],["title/2",[14,651.644]],["content/2",[3,10.952,28, [...]
\ No newline at end of file
diff --git a/search-doc-1730378929944.json b/search-doc-1730378929944.json
deleted file mode 100644
index 958ae80902..0000000000
--- a/search-doc-1730378929944.json
+++ /dev/null
@@ -1 +0,0 @@
-{"searchDocs":[{"title":"Apache OpenDAL™ Beijing Meetup 1st","type":0,"sectionRef":"#","url":"/blog/2024/09/09/apache-opendal-meetup-beijing-1st","content":"","keywords":"","version":null},{"title":"Agenda​","type":1,"pageTitle":"Apache OpenDAL™ Beijing Meetup 1st","url":"/blog/2024/09/09/apache-opendal-meetup-beijing-1st#agenda","content":" 12:00 - 13:00: Lunch / Networking (food provided)13:00 - 14:00: Welcome / Introductions14:00 - 15:00: Talks15:00 - 15:30: Coffee / Email Break15:30  [...]
\ No newline at end of file
diff --git a/search-doc-1730442319077.json b/search-doc-1730442319077.json
new file mode 100644
index 0000000000..42b1f76965
--- /dev/null
+++ b/search-doc-1730442319077.json
@@ -0,0 +1 @@
+{"searchDocs":[{"title":"Apache OpenDAL™ Beijing Meetup 1st","type":0,"sectionRef":"#","url":"/blog/2024/09/09/apache-opendal-meetup-beijing-1st","content":"","keywords":"","version":null},{"title":"Agenda​","type":1,"pageTitle":"Apache OpenDAL™ Beijing Meetup 1st","url":"/blog/2024/09/09/apache-opendal-meetup-beijing-1st#agenda","content":" 12:00 - 13:00: Lunch / Networking (food provided)13:00 - 14:00: Welcome / Introductions14:00 - 15:00: Talks15:00 - 15:30: Coffee / Email Break15:30  [...]
\ No newline at end of file
diff --git a/search-doc.json b/search-doc.json
index 958ae80902..42b1f76965 100644
--- a/search-doc.json
+++ b/search-doc.json
@@ -1 +1 @@
-{"searchDocs":[{"title":"Apache OpenDAL™ Beijing Meetup 1st","type":0,"sectionRef":"#","url":"/blog/2024/09/09/apache-opendal-meetup-beijing-1st","content":"","keywords":"","version":null},{"title":"Agenda​","type":1,"pageTitle":"Apache OpenDAL™ Beijing Meetup 1st","url":"/blog/2024/09/09/apache-opendal-meetup-beijing-1st#agenda","content":" 12:00 - 13:00: Lunch / Networking (food provided)13:00 - 14:00: Welcome / Introductions14:00 - 15:00: Talks15:00 - 15:30: Coffee / Email Break15:30  [...]
\ No newline at end of file
+{"searchDocs":[{"title":"Apache OpenDAL™ Beijing Meetup 1st","type":0,"sectionRef":"#","url":"/blog/2024/09/09/apache-opendal-meetup-beijing-1st","content":"","keywords":"","version":null},{"title":"Agenda​","type":1,"pageTitle":"Apache OpenDAL™ Beijing Meetup 1st","url":"/blog/2024/09/09/apache-opendal-meetup-beijing-1st#agenda","content":" 12:00 - 13:00: Lunch / Networking (food provided)13:00 - 14:00: Welcome / Introductions14:00 - 15:00: Talks15:00 - 15:30: Coffee / Email Break15:30  [...]
\ No newline at end of file