You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@opendal.apache.org by gi...@apache.org on 2023/08/15 02:14:54 UTC
[incubator-opendal] branch gh-pages updated: deploy: a31ad051ec1d37a05cc80881f3c127e250a99a13
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/incubator-opendal.git
The following commit(s) were added to refs/heads/gh-pages by this push:
new 8b07a3169 deploy: a31ad051ec1d37a05cc80881f3c127e250a99a13
8b07a3169 is described below
commit 8b07a316934f0012e9d58c98528e602b96c87e8c
Author: Xuanwo <Xu...@users.noreply.github.com>
AuthorDate: Tue Aug 15 02:14:49 2023 +0000
deploy: a31ad051ec1d37a05cc80881f3c127e250a99a13
---
404.html | 4 +-
.../{054cd2fb.7cfcac34.js => 054cd2fb.4317e7d5.js} | 2 +-
.../{136e1c50.8c0bac84.js => 136e1c50.fec716b9.js} | 2 +-
.../{1957547a.5285a119.js => 1957547a.47483764.js} | 2 +-
assets/js/1db64337.22d863ac.js | 1 +
assets/js/1db64337.6e76d3a6.js | 1 -
.../{22d8fa67.13a6e456.js => 22d8fa67.57c1ec0a.js} | 2 +-
.../{2cbf1097.f65dda58.js => 2cbf1097.723d908b.js} | 2 +-
.../{434bbc94.7a762575.js => 434bbc94.eea45d74.js} | 2 +-
.../{57a16c1d.ef23d779.js => 57a16c1d.65f523d5.js} | 2 +-
assets/js/5a65e608.20cc09fb.js | 1 +
assets/js/5a65e608.836b433d.js | 1 -
.../{62a401e9.8390c575.js => 62a401e9.6753c610.js} | 2 +-
assets/js/6eb7fe18.4ced62f8.js | 1 +
assets/js/6eb7fe18.99feb8e1.js | 1 -
.../{8cc9519e.8ba09974.js => 8cc9519e.67da9b9c.js} | 2 +-
.../{8f4159f2.165d5d9b.js => 8f4159f2.fb36063a.js} | 2 +-
.../{a0405932.3abe4e8e.js => a0405932.1d1c3ff0.js} | 2 +-
.../{ab10c306.f52f1e8f.js => ab10c306.cc99879a.js} | 2 +-
assets/js/ae4554eb.3fa2a082.js | 1 +
assets/js/ae4554eb.42ef9446.js | 1 -
.../{b56f9725.32b00174.js => b56f9725.be474777.js} | 2 +-
.../{bb5b2057.d8c82b67.js => bb5b2057.d6197999.js} | 2 +-
.../{c6ab695b.9d2ffca0.js => c6ab695b.ae957d94.js} | 2 +-
.../{cc62039a.aba6f9bd.js => cc62039a.21627639.js} | 2 +-
assets/js/d5c31a96.0d638864.js | 1 -
assets/js/d5c31a96.6c6075ae.js | 1 +
.../{e892cec6.debe67bc.js => e892cec6.0665bee6.js} | 2 +-
.../{f1ca5a39.99558594.js => f1ca5a39.e01ed083.js} | 2 +-
...e~main.5ffeff9f.js => runtime~main.a724edce.js} | 2 +-
blog/archive/index.html | 4 +-
blog/index.html | 4 +-
blog/opendal-access-data-freely/index.html | 4 +-
blog/opendal-entered-apache-incubator/index.html | 4 +-
blog/tags/announcement/index.html | 4 +-
blog/tags/index.html | 4 +-
docs/category/contributing/index.html | 4 +-
docs/category/reference/index.html | 4 +-
docs/category/services/index.html | 4 +-
.../reference/generate_release_note/index.html | 6 +-
docs/contributing/reference/setup_gpg/index.html | 6 +-
docs/contributing/release/index.html | 6 +-
docs/contributing/verify/index.html | 6 +-
docs/lua/classes/opendal.metadata.html | 2 +-
docs/lua/classes/opendal.operator.html | 2 +-
docs/lua/index.html | 2 +-
docs/nodejs/classes/BlockingLister.html | 4 +-
docs/nodejs/classes/Entry.html | 4 +-
docs/nodejs/classes/Lister.html | 4 +-
docs/nodejs/classes/Metadata.html | 18 +-
docs/nodejs/classes/Operator.html | 58 ++--
docs/nodejs/interfaces/PresignedRequest.html | 8 +-
docs/overview/index.html | 6 +-
docs/python/opendal.html | 64 ++---
docs/python/search.js | 2 +-
docs/rust/implementors/core/clone/trait.Clone.js | 2 +-
docs/rust/implementors/core/cmp/trait.Eq.js | 2 +-
docs/rust/implementors/core/cmp/trait.PartialEq.js | 2 +-
docs/rust/implementors/core/convert/trait.From.js | 2 +-
.../implementors/core/default/trait.Default.js | 2 +-
docs/rust/implementors/core/fmt/trait.Debug.js | 2 +-
docs/rust/implementors/core/fmt/trait.Display.js | 2 +-
.../core/future/future/trait.Future.js | 2 +-
docs/rust/implementors/core/hash/trait.Hash.js | 2 +-
.../core/iter/traits/iterator/trait.Iterator.js | 2 +-
docs/rust/implementors/core/marker/trait.Copy.js | 2 +-
.../implementors/core/marker/trait.StructuralEq.js | 2 +-
.../core/marker/trait.StructuralPartialEq.js | 2 +-
docs/rust/implementors/core/marker/trait.Sync.js | 2 +-
.../implementors/core/str/traits/trait.FromStr.js | 2 +-
.../futures_core/stream/trait.Stream.js | 2 +-
.../futures_io/if_std/trait.AsyncSeek.js | 2 +-
docs/rust/implementors/std/io/trait.Read.js | 2 +-
docs/rust/implementors/std/io/trait.Seek.js | 2 +-
docs/rust/opendal/enum.EntryMode.html | 2 +-
docs/rust/opendal/enum.Metakey.html | 4 +-
docs/rust/opendal/enum.Scheme.html | 2 +-
docs/rust/opendal/raw/enum.Operation.html | 2 +-
docs/rust/opendal/raw/enum.PresignOperation.html | 2 +-
docs/rust/opendal/raw/oio/enum.ReadOperation.html | 2 +-
docs/rust/opendal/raw/oio/struct.Cursor.html | 2 +-
docs/rust/opendal/raw/oio/trait.BlockingPage.html | 2 +-
docs/rust/opendal/raw/oio/trait.BlockingRead.html | 6 +-
docs/rust/opendal/raw/oio/trait.Stream.html | 4 +-
.../rust/opendal/raw/struct.BytesContentRange.html | 4 +-
docs/rust/opendal/services/struct.Redis.html | 25 +-
docs/rust/opendal/struct.Appender.html | 20 +-
docs/rust/opendal/struct.BlockingReader.html | 4 +-
docs/rust/opendal/struct.Error.html | 2 +-
docs/rust/opendal/struct.Reader.html | 4 +-
docs/rust/opendal/trait.Builder.html | 2 +-
docs/rust/search-index.js | 2 +-
.../src/opendal/services/redis/backend.rs.html | 312 +++++++++++++++++----
docs/services/azblob/index.html | 6 +-
docs/services/azdfs/index.html | 6 +-
docs/services/cos/index.html | 6 +-
docs/services/dashmap/index.html | 6 +-
docs/services/fs/index.html | 6 +-
docs/services/ftp/index.html | 6 +-
docs/services/hdfs/index.html | 6 +-
docs/services/ipfs/index.html | 6 +-
docs/services/ipmfs/index.html | 6 +-
docs/services/memory/index.html | 6 +-
docs/services/oss/index.html | 6 +-
docs/services/redis/index.html | 6 +-
docs/services/rocksdb/index.html | 6 +-
docs/services/s3/index.html | 6 +-
docs/services/sftp/index.html | 6 +-
docs/services/sled/index.html | 6 +-
docs/services/webhdfs/index.html | 6 +-
docs/vision/index.html | 6 +-
download/index.html | 4 +-
index.html | 4 +-
113 files changed, 535 insertions(+), 308 deletions(-)
diff --git a/404.html b/404.html
index b8abcc60a..d33761dca 100644
--- a/404.html
+++ b/404.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Page Not Found | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/404.html"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/assets/js/054cd2fb.7cfcac34.js b/assets/js/054cd2fb.4317e7d5.js
similarity index 84%
rename from assets/js/054cd2fb.7cfcac34.js
rename to assets/js/054cd2fb.4317e7d5.js
index d156b7100..565bbbc22 100644
--- a/assets/js/054cd2fb.7cfcac34.js
+++ b/assets/js/054cd2fb.4317e7d5.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1846],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1846],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/136e1c50.8c0bac84.js b/assets/js/136e1c50.fec716b9.js
similarity index 71%
rename from assets/js/136e1c50.8c0bac84.js
rename to assets/js/136e1c50.fec716b9.js
index d9b383504..4e8982e27 100644
--- a/assets/js/136e1c50.8c0bac84.js
+++ b/assets/js/136e1c50.fec716b9.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3057],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3057],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/1957547a.5285a119.js b/assets/js/1957547a.47483764.js
similarity index 74%
rename from assets/js/1957547a.5285a119.js
rename to assets/js/1957547a.47483764.js
index 2a0ef2995..86a9ec4e9 100644
--- a/assets/js/1957547a.5285a119.js
+++ b/assets/js/1957547a.47483764.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4477],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4477],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/1db64337.22d863ac.js b/assets/js/1db64337.22d863ac.js
new file mode 100644
index 000000000..a5a540372
--- /dev/null
+++ b/assets/js/1db64337.22d863ac.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1372],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}retu [...]
\ No newline at end of file
diff --git a/assets/js/1db64337.6e76d3a6.js b/assets/js/1db64337.6e76d3a6.js
deleted file mode 100644
index 3e98a4600..000000000
--- a/assets/js/1db64337.6e76d3a6.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1372],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}retu [...]
\ No newline at end of file
diff --git a/assets/js/22d8fa67.13a6e456.js b/assets/js/22d8fa67.57c1ec0a.js
similarity index 85%
rename from assets/js/22d8fa67.13a6e456.js
rename to assets/js/22d8fa67.57c1ec0a.js
index 315e36d29..08db66a2b 100644
--- a/assets/js/22d8fa67.13a6e456.js
+++ b/assets/js/22d8fa67.57c1ec0a.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4536],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4536],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}retu [...]
\ No newline at end of file
diff --git a/assets/js/2cbf1097.f65dda58.js b/assets/js/2cbf1097.723d908b.js
similarity index 91%
rename from assets/js/2cbf1097.f65dda58.js
rename to assets/js/2cbf1097.723d908b.js
index 9e6c3b39c..0aeeadb71 100644
--- a/assets/js/2cbf1097.f65dda58.js
+++ b/assets/js/2cbf1097.723d908b.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2804],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2804],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/434bbc94.7a762575.js b/assets/js/434bbc94.eea45d74.js
similarity index 86%
rename from assets/js/434bbc94.7a762575.js
rename to assets/js/434bbc94.eea45d74.js
index 6828aaa69..4b1001be6 100644
--- a/assets/js/434bbc94.7a762575.js
+++ b/assets/js/434bbc94.eea45d74.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1163],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1163],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/57a16c1d.ef23d779.js b/assets/js/57a16c1d.65f523d5.js
similarity index 83%
rename from assets/js/57a16c1d.ef23d779.js
rename to assets/js/57a16c1d.65f523d5.js
index 89bffa897..1d9f0a44e 100644
--- a/assets/js/57a16c1d.ef23d779.js
+++ b/assets/js/57a16c1d.65f523d5.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7757],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>b});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7757],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>b});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/5a65e608.20cc09fb.js b/assets/js/5a65e608.20cc09fb.js
new file mode 100644
index 000000000..d345706a1
--- /dev/null
+++ b/assets/js/5a65e608.20cc09fb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6427],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>m});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/5a65e608.836b433d.js b/assets/js/5a65e608.836b433d.js
deleted file mode 100644
index a1ba0a5c4..000000000
--- a/assets/js/5a65e608.836b433d.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6427],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>m});var a=t(7294);function r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/62a401e9.8390c575.js b/assets/js/62a401e9.6753c610.js
similarity index 84%
rename from assets/js/62a401e9.8390c575.js
rename to assets/js/62a401e9.6753c610.js
index 16aa3188e..53f8006b8 100644
--- a/assets/js/62a401e9.8390c575.js
+++ b/assets/js/62a401e9.6753c610.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6089],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6089],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/6eb7fe18.4ced62f8.js b/assets/js/6eb7fe18.4ced62f8.js
new file mode 100644
index 000000000..5ddc193b0
--- /dev/null
+++ b/assets/js/6eb7fe18.4ced62f8.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3922],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/6eb7fe18.99feb8e1.js b/assets/js/6eb7fe18.99feb8e1.js
deleted file mode 100644
index e988f9f3b..000000000
--- a/assets/js/6eb7fe18.99feb8e1.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3922],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/8cc9519e.8ba09974.js b/assets/js/8cc9519e.67da9b9c.js
similarity index 89%
rename from assets/js/8cc9519e.8ba09974.js
rename to assets/js/8cc9519e.67da9b9c.js
index eaf28b26c..1b76348c5 100644
--- a/assets/js/8cc9519e.8ba09974.js
+++ b/assets/js/8cc9519e.67da9b9c.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1652],{3905:(e,t,a)=>{a.d(t,{Zo:()=>o,kt:()=>k});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1652],{3905:(e,t,a)=>{a.d(t,{Zo:()=>o,kt:()=>k});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}retu [...]
\ No newline at end of file
diff --git a/assets/js/8f4159f2.165d5d9b.js b/assets/js/8f4159f2.fb36063a.js
similarity index 88%
rename from assets/js/8f4159f2.165d5d9b.js
rename to assets/js/8f4159f2.fb36063a.js
index 19c320ff1..bc9cebb5e 100644
--- a/assets/js/8f4159f2.165d5d9b.js
+++ b/assets/js/8f4159f2.fb36063a.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4719],{3905:(e,t,a)=>{a.d(t,{Zo:()=>o,kt:()=>k});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4719],{3905:(e,t,a)=>{a.d(t,{Zo:()=>o,kt:()=>k});var r=a(7294);function n(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function i(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,r)}retu [...]
\ No newline at end of file
diff --git a/assets/js/a0405932.3abe4e8e.js b/assets/js/a0405932.1d1c3ff0.js
similarity index 84%
rename from assets/js/a0405932.3abe4e8e.js
rename to assets/js/a0405932.1d1c3ff0.js
index ec17a7869..0b86a0756 100644
--- a/assets/js/a0405932.3abe4e8e.js
+++ b/assets/js/a0405932.1d1c3ff0.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[716],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retur [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[716],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retur [...]
\ No newline at end of file
diff --git a/assets/js/ab10c306.f52f1e8f.js b/assets/js/ab10c306.cc99879a.js
similarity index 68%
rename from assets/js/ab10c306.f52f1e8f.js
rename to assets/js/ab10c306.cc99879a.js
index 68101291e..7ba2de074 100644
--- a/assets/js/ab10c306.f52f1e8f.js
+++ b/assets/js/ab10c306.cc99879a.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[380],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}retur [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[380],{3905:(e,t,r)=>{r.d(t,{Zo:()=>p,kt:()=>g});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}retur [...]
\ No newline at end of file
diff --git a/assets/js/ae4554eb.3fa2a082.js b/assets/js/ae4554eb.3fa2a082.js
new file mode 100644
index 000000000..181b72cc1
--- /dev/null
+++ b/assets/js/ae4554eb.3fa2a082.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6983],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/ae4554eb.42ef9446.js b/assets/js/ae4554eb.42ef9446.js
deleted file mode 100644
index 7656e0285..000000000
--- a/assets/js/ae4554eb.42ef9446.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[6983],{3905:(e,t,r)=>{r.d(t,{Zo:()=>d,kt:()=>f});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/b56f9725.32b00174.js b/assets/js/b56f9725.be474777.js
similarity index 84%
rename from assets/js/b56f9725.32b00174.js
rename to assets/js/b56f9725.be474777.js
index 9761a23f9..97c79f48a 100644
--- a/assets/js/b56f9725.32b00174.js
+++ b/assets/js/b56f9725.be474777.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[217],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>f});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retur [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[217],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>f});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retur [...]
\ No newline at end of file
diff --git a/assets/js/bb5b2057.d8c82b67.js b/assets/js/bb5b2057.d6197999.js
similarity index 77%
rename from assets/js/bb5b2057.d8c82b67.js
rename to assets/js/bb5b2057.d6197999.js
index ef1de08ed..7adb1d533 100644
--- a/assets/js/bb5b2057.d8c82b67.js
+++ b/assets/js/bb5b2057.d6197999.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5214],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>k});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[5214],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>f});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/c6ab695b.9d2ffca0.js b/assets/js/c6ab695b.ae957d94.js
similarity index 73%
rename from assets/js/c6ab695b.9d2ffca0.js
rename to assets/js/c6ab695b.ae957d94.js
index 9bee75b54..cb9814951 100644
--- a/assets/js/c6ab695b.9d2ffca0.js
+++ b/assets/js/c6ab695b.ae957d94.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7289],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>b});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[7289],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>b});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}retu [...]
\ No newline at end of file
diff --git a/assets/js/cc62039a.aba6f9bd.js b/assets/js/cc62039a.21627639.js
similarity index 89%
rename from assets/js/cc62039a.aba6f9bd.js
rename to assets/js/cc62039a.21627639.js
index ba6fc80dc..2c4ecf350 100644
--- a/assets/js/cc62039a.aba6f9bd.js
+++ b/assets/js/cc62039a.21627639.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1011],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>k});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[1011],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>k});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/d5c31a96.0d638864.js b/assets/js/d5c31a96.0d638864.js
deleted file mode 100644
index ec9f3174a..000000000
--- a/assets/js/d5c31a96.0d638864.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2379],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}retu [...]
\ No newline at end of file
diff --git a/assets/js/d5c31a96.6c6075ae.js b/assets/js/d5c31a96.6c6075ae.js
new file mode 100644
index 000000000..726ca5288
--- /dev/null
+++ b/assets/js/d5c31a96.6c6075ae.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[2379],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(7294);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}retu [...]
\ No newline at end of file
diff --git a/assets/js/e892cec6.debe67bc.js b/assets/js/e892cec6.0665bee6.js
similarity index 86%
rename from assets/js/e892cec6.debe67bc.js
rename to assets/js/e892cec6.0665bee6.js
index ae0955a6e..58806c6b3 100644
--- a/assets/js/e892cec6.debe67bc.js
+++ b/assets/js/e892cec6.0665bee6.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3845],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>f});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[3845],{3905:(e,t,a)=>{a.d(t,{Zo:()=>c,kt:()=>f});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/f1ca5a39.99558594.js b/assets/js/f1ca5a39.e01ed083.js
similarity index 87%
rename from assets/js/f1ca5a39.99558594.js
rename to assets/js/f1ca5a39.e01ed083.js
index 3f358cee5..29651cf87 100644
--- a/assets/js/f1ca5a39.99558594.js
+++ b/assets/js/f1ca5a39.e01ed083.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4538],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
+"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[4538],{3905:(e,t,a)=>{a.d(t,{Zo:()=>u,kt:()=>b});var n=a(7294);function r(e,t,a){return t in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function l(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),a.push.apply(a,n)}retu [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.5ffeff9f.js b/assets/js/runtime~main.a724edce.js
similarity index 85%
rename from assets/js/runtime~main.5ffeff9f.js
rename to assets/js/runtime~main.a724edce.js
index d0b06a69b..69d5bbaeb 100644
--- a/assets/js/runtime~main.5ffeff9f.js
+++ b/assets/js/runtime~main.a724edce.js
@@ -1 +1 @@
-(()=>{"use strict";var e,a,t,c,r,f={},b={};function d(e){var a=b[e];if(void 0!==a)return a.exports;var t=b[e]={exports:{}};return f[e].call(t.exports,t,t.exports,d),t.exports}d.m=f,e=[],d.O=(a,t,c,r)=>{if(!t){var f=1/0;for(i=0;i<e.length;i++){t=e[i][0],c=e[i][1],r=e[i][2];for(var b=!0,o=0;o<t.length;o++)(!1&r||f>=r)&&Object.keys(d.O).every((e=>d.O[e](t[o])))?t.splice(o--,1):(b=!1,r<f&&(f=r));if(b){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}r=r||0;for(var i=e.length;i>0&&e[i-1] [...]
\ No newline at end of file
+(()=>{"use strict";var e,a,t,c,r,f={},b={};function d(e){var a=b[e];if(void 0!==a)return a.exports;var t=b[e]={exports:{}};return f[e].call(t.exports,t,t.exports,d),t.exports}d.m=f,e=[],d.O=(a,t,c,r)=>{if(!t){var f=1/0;for(i=0;i<e.length;i++){t=e[i][0],c=e[i][1],r=e[i][2];for(var b=!0,o=0;o<t.length;o++)(!1&r||f>=r)&&Object.keys(d.O).every((e=>d.O[e](t[o])))?t.splice(o--,1):(b=!1,r<f&&(f=r));if(b){e.splice(i--,1);var n=c();void 0!==n&&(a=n)}}return a}r=r||0;for(var i=e.length;i>0&&e[i-1] [...]
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
index e45c60d0d..791241449 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Archive | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/archive"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="t [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/blog/index.html b/blog/index.html
index 25a81e14b..2b491057b 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Blog | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property="og:title" content="Blog | Apache OpenDAL"><meta data-rh=" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/blog/opendal-access-data-freely/index.html b/blog/opendal-access-data-freely/index.html
index c0e1ef37f..c46e72cd0 100644
--- a/blog/opendal-access-data-freely/index.html
+++ b/blog/opendal-access-data-freely/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Apache OpenDAL(Incubating): Access Data Freely | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/opendal-access-data-freely"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="tru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/blog/opendal-entered-apache-incubator/index.html b/blog/opendal-entered-apache-incubator/index.html
index 7e8e58dc6..735217151 100644
--- a/blog/opendal-entered-apache-incubator/index.html
+++ b/blog/opendal-entered-apache-incubator/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Way to Go: OpenDAL successfully entered Apache Incubator | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/opendal-entered-apache-incubator"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><m [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/blog/tags/announcement/index.html b/blog/tags/announcement/index.html
index 414454ec2..3e5154b19 100644
--- a/blog/tags/announcement/index.html
+++ b/blog/tags/announcement/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">2 posts tagged with "announcement" | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags/announcement"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/blog/tags/index.html b/blog/tags/index.html
index 449fcbfc0..b45c66484 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Tags | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/blog/tags"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" property="og:title" content="Tags | Apache OpenDAL"><meta data [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/category/contributing/index.html b/docs/category/contributing/index.html
index 951d71b5d..a9c10c6ec 100644
--- a/docs/category/contributing/index.html
+++ b/docs/category/contributing/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Contributing | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/category/contributing"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="cu [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/category/reference/index.html b/docs/category/reference/index.html
index 7aac5f0c2..bcc7ef3bc 100644
--- a/docs/category/reference/index.html
+++ b/docs/category/reference/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Reference | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/category/reference"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/category/services/index.html b/docs/category/services/index.html
index d87033c9c..421b0c67b 100644
--- a/docs/category/services/index.html
+++ b/docs/category/services/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Services | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/category/services"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current">< [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/contributing/reference/generate_release_note/index.html b/docs/contributing/reference/generate_release_note/index.html
index e279b562f..688a3ea0f 100644
--- a/docs/contributing/reference/generate_release_note/index.html
+++ b/docs/contributing/reference/generate_release_note/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Generate Release Note | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/contributing/reference/generate_release_note"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/contributing/reference/setup_gpg/index.html b/docs/contributing/reference/setup_gpg/index.html
index 22702fc07..c527fa180 100644
--- a/docs/contributing/reference/setup_gpg/index.html
+++ b/docs/contributing/reference/setup_gpg/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Setup GPG Key | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/contributing/reference/setup_gpg"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/contributing/release/index.html b/docs/contributing/release/index.html
index aaf1875b2..b811b2464 100644
--- a/docs/contributing/release/index.html
+++ b/docs/contributing/release/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Release | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/contributing/release"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
@@ -14,8 +14,8 @@
how the release manager releases a new version in accordance with the Apache requirements.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="introduction">Introduction<a href="#introduction" class="hash-link" aria-label="Direct link to Introduction" title="Direct link to Introduction"></a></h2><p><code>Source Release</code> is the key point which Apache values, also, is necessary for a release. And OpenDAL will only have source release.</p><p>Please remember that publishing software [...]
we will abandon that version and prepare for the next one.
Our release page will only display ASF releases instead of GitHub Releases.</p><blockquote><ul><li><code>opendal_version</code>: the version for opendal, like <code>0.36.0</code>.</li><li><code>release_version</code>: the version for voting, like <code>0.36.0-rc1</code>.</li><li><code>rc_version</code>: the minor version for voting, like <code>rc1</code>.</li></ul></blockquote><h3 class="anchor anchorWithStickyNavbar_LWe7" id="create-an-asf-release">Create an ASF Release<a href="#create- [...]
-please cancel the release for the current <code>release_version</code>, <em>increase th RC counting</em> and reinitiate a release with the new <code>release_version</code>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="voting">Voting<a href="#voting" class="hash-link" aria-label="Direct link to Voting" title="Direct link to Voting"></a></h2><p>As an incubating project, OpenDAL requires votes from both the OpenDAL Community and Incubator Community.</p><blockquote><ul><li><code>op [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+please cancel the release for the current <code>release_version</code>, <em>increase th RC counting</em> and reinitiate a release with the new <code>release_version</code>.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="voting">Voting<a href="#voting" class="hash-link" aria-label="Direct link to Voting" title="Direct link to Voting"></a></h2><p>As an incubating project, OpenDAL requires votes from both the OpenDAL Community and Incubator Community.</p><blockquote><ul><li><code>op [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/contributing/verify/index.html b/docs/contributing/verify/index.html
index 635d973d9..ad2450fb2 100644
--- a/docs/contributing/verify/index.html
+++ b/docs/contributing/verify/index.html
@@ -5,15 +5,15 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Verify | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/contributing/verify"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current">< [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
You can download it directly from <a href="https://raw.githubusercontent.com/apache/incubator-opendal/main/scripts/check.sh" target="_blank" rel="noopener noreferrer">here</a>
-or check it out from the repository:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> clone git@github.com:apache/incuba [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+or check it out from the repository:</p><div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_biex"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> clone git@github.com:apache/incuba [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/lua/classes/opendal.metadata.html b/docs/lua/classes/opendal.metadata.html
index c2662ee85..5350bf351 100644
--- a/docs/lua/classes/opendal.metadata.html
+++ b/docs/lua/classes/opendal.metadata.html
@@ -138,7 +138,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2023-08-15 01:26:17 </i>
+<i style="float:right;">Last updated 2023-08-15 02:05:56 </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 d3881b6fd..7972cc100 100644
--- a/docs/lua/classes/opendal.operator.html
+++ b/docs/lua/classes/opendal.operator.html
@@ -321,7 +321,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2023-08-15 01:26:17 </i>
+<i style="float:right;">Last updated 2023-08-15 02:05:56 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
diff --git a/docs/lua/index.html b/docs/lua/index.html
index 54194e914..3cc3063e3 100644
--- a/docs/lua/index.html
+++ b/docs/lua/index.html
@@ -57,7 +57,7 @@
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a></i>
-<i style="float:right;">Last updated 2023-08-15 01:26:17 </i>
+<i style="float:right;">Last updated 2023-08-15 02:05:56 </i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
diff --git a/docs/nodejs/classes/BlockingLister.html b/docs/nodejs/classes/BlockingLister.html
index e42e55157..a4100d210 100644
--- a/docs/nodejs/classes/BlockingLister.html
+++ b/docs/nodejs/classes/BlockingLister.html
@@ -20,7 +20,7 @@
<ul class="tsd-hierarchy">
<li><span class="target">BlockingLister</span></li></ul></section><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L435">index.d.ts:435</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L435">index.d.ts:435</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
@@ -51,7 +51,7 @@
<li class="tsd-description">
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><a href="Entry.html" class="tsd-signature-type tsd-kind-class">Entry</a></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L436">index.d.ts:436</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L436">index.d.ts:436</a></li></ul></aside></li></ul></section></section></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">
diff --git a/docs/nodejs/classes/Entry.html b/docs/nodejs/classes/Entry.html
index 8663e5093..797087438 100644
--- a/docs/nodejs/classes/Entry.html
+++ b/docs/nodejs/classes/Entry.html
@@ -20,7 +20,7 @@
<ul class="tsd-hierarchy">
<li><span class="target">Entry</span></li></ul></section><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L398">index.d.ts:398</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L398">index.d.ts:398</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
@@ -53,7 +53,7 @@
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L400">index.d.ts:400</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L400">index.d.ts:400</a></li></ul></aside></li></ul></section></section></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">
diff --git a/docs/nodejs/classes/Lister.html b/docs/nodejs/classes/Lister.html
index e46a72c76..0c02551b6 100644
--- a/docs/nodejs/classes/Lister.html
+++ b/docs/nodejs/classes/Lister.html
@@ -20,7 +20,7 @@
<ul class="tsd-hierarchy">
<li><span class="target">Lister</span></li></ul></section><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L424">index.d.ts:424</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L424">index.d.ts:424</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
@@ -57,7 +57,7 @@ thing internally.</p>
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</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">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L433">index.d.ts:433</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L433">index.d.ts:433</a></li></ul></aside></li></ul></section></section></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">
diff --git a/docs/nodejs/classes/Metadata.html b/docs/nodejs/classes/Metadata.html
index 612b7927c..1e2b3b2ad 100644
--- a/docs/nodejs/classes/Metadata.html
+++ b/docs/nodejs/classes/Metadata.html
@@ -20,7 +20,7 @@
<ul class="tsd-hierarchy">
<li><span class="target">Metadata</span></li></ul></section><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L402">index.d.ts:402</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L402">index.d.ts:402</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
@@ -63,7 +63,7 @@
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L408">index.d.ts:408</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L408">index.d.ts:408</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="contentLength" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>content<wbr/>Length</span><a href="#contentLength" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -73,7 +73,7 @@
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">bigint</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L410">index.d.ts:410</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L410">index.d.ts:410</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="contentMd5" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>content<wbr/>Md5</span><a href="#contentMd5" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -83,7 +83,7 @@
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L412">index.d.ts:412</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L412">index.d.ts:412</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="contentType" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>content<wbr/>Type</span><a href="#contentType" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -93,7 +93,7 @@
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L414">index.d.ts:414</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L414">index.d.ts:414</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="etag" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>etag</span><a href="#etag" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -103,7 +103,7 @@
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L416">index.d.ts:416</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L416">index.d.ts:416</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="lastModified" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>last<wbr/>Modified</span><a href="#lastModified" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -114,7 +114,7 @@
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type">string</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L422">index.d.ts:422</a></li></ul></aside></li></ul></section></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L422">index.d.ts:422</a></li></ul></aside></li></ul></section></section>
<section class="tsd-panel-group tsd-member-group">
<h2>Methods</h2>
<section class="tsd-panel tsd-member"><a id="isDirectory" class="tsd-anchor"></a>
@@ -126,7 +126,7 @@
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L404">index.d.ts:404</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L404">index.d.ts:404</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="isFile" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>is<wbr/>File</span><a href="#isFile" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -136,7 +136,7 @@
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L406">index.d.ts:406</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L406">index.d.ts:406</a></li></ul></aside></li></ul></section></section></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">
diff --git a/docs/nodejs/classes/Operator.html b/docs/nodejs/classes/Operator.html
index 5d3198bf7..43a0dd5fb 100644
--- a/docs/nodejs/classes/Operator.html
+++ b/docs/nodejs/classes/Operator.html
@@ -20,7 +20,7 @@
<ul class="tsd-hierarchy">
<li><span class="target">Operator</span></li></ul></section><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L33">index.d.ts:33</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L33">index.d.ts:33</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
@@ -79,7 +79,7 @@
<h5><code class="tsd-tag ts-flagOptional">Optional</code> <span class="tsd-kind-parameter">options</span>: <span class="tsd-signature-type">null</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Record</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">, </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">></span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <a href="Operator.html" class="tsd-signature-type tsd-kind-class">Operator</a></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L35">index.d.ts:35</a></li></ul></aside></li></ul></section></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L35">index.d.ts:35</a></li></ul></aside></li></ul></section></section>
<section class="tsd-panel-group tsd-member-group">
<h2>Methods</h2>
<section class="tsd-panel tsd-member"><a id="append" class="tsd-anchor"></a>
@@ -104,7 +104,7 @@
<h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L170">index.d.ts:170</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L170">index.d.ts:170</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="check" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>check</span><a href="#check" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -117,7 +117,7 @@
</div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L78">index.d.ts:78</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L78">index.d.ts:78</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="copy" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>copy</span><a href="#copy" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -136,7 +136,7 @@
<h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L179">index.d.ts:179</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L179">index.d.ts:179</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="copySync" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>copy<wbr/>Sync</span><a href="#copySync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -155,7 +155,7 @@
<h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L188">index.d.ts:188</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L188">index.d.ts:188</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="createDir" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>create<wbr/>Dir</span><a href="#createDir" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -172,7 +172,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L105">index.d.ts:105</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L105">index.d.ts:105</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="createDirSync" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>create<wbr/>Dir<wbr/>Sync</span><a href="#createDirSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -189,7 +189,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L114">index.d.ts:114</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L114">index.d.ts:114</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="delete" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>delete</span><a href="#delete" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -207,7 +207,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L269">index.d.ts:269</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L269">index.d.ts:269</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="deleteSync" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>delete<wbr/>Sync</span><a href="#deleteSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -224,7 +224,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L278">index.d.ts:278</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L278">index.d.ts:278</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="isExist" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>is<wbr/>Exist</span><a href="#isExist" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -241,7 +241,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">boolean</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L87">index.d.ts:87</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L87">index.d.ts:87</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="isExistSync" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>is<wbr/>Exist<wbr/>Sync</span><a href="#isExistSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -258,7 +258,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L96">index.d.ts:96</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L96">index.d.ts:96</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="list" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>list</span><a href="#list" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -277,7 +277,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Lister.html" class="tsd-signature-type tsd-kind-class">Lister</a><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L325">index.d.ts:325</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L325">index.d.ts:325</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="listSync" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>list<wbr/>Sync</span><a href="#listSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -296,7 +296,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <a href="BlockingLister.html" class="tsd-signature-type tsd-kind-class">BlockingLister</a></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L348">index.d.ts:348</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L348">index.d.ts:348</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="presignRead" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>presign<wbr/>Read</span><a href="#presignRead" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -316,7 +316,7 @@
<h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/PresignedRequest.html" class="tsd-signature-type tsd-kind-interface">PresignedRequest</a><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L364">index.d.ts:364</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L364">index.d.ts:364</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="presignStat" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>presign<wbr/>Stat</span><a href="#presignStat" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -336,7 +336,7 @@
<h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/PresignedRequest.html" class="tsd-signature-type tsd-kind-interface">PresignedRequest</a><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L396">index.d.ts:396</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L396">index.d.ts:396</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="presignWrite" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>presign<wbr/>Write</span><a href="#presignWrite" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -356,7 +356,7 @@
<h5><span class="tsd-kind-parameter">expires</span>: <span class="tsd-signature-type">number</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="../interfaces/PresignedRequest.html" class="tsd-signature-type tsd-kind-interface">PresignedRequest</a><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L380">index.d.ts:380</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L380">index.d.ts:380</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="read" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>read</span><a href="#read" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -373,7 +373,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type ">Buffer</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L123">index.d.ts:123</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L123">index.d.ts:123</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="readSync" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>read<wbr/>Sync</span><a href="#readSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -390,7 +390,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Buffer</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L132">index.d.ts:132</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L132">index.d.ts:132</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="remove" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>remove</span><a href="#remove" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -408,7 +408,7 @@
<h5><span class="tsd-kind-parameter">paths</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L290">index.d.ts:290</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L290">index.d.ts:290</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="removeAll" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>remove<wbr/>All</span><a href="#removeAll" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -426,7 +426,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L302">index.d.ts:302</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L302">index.d.ts:302</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="rename" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>rename</span><a href="#rename" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -446,7 +446,7 @@
<h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L199">index.d.ts:199</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L199">index.d.ts:199</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="renameSync" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>rename<wbr/>Sync</span><a href="#renameSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -466,7 +466,7 @@
<h5><span class="tsd-kind-parameter">to</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L210">index.d.ts:210</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L210">index.d.ts:210</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="scan" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>scan</span><a href="#scan" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -485,7 +485,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Lister.html" class="tsd-signature-type tsd-kind-class">Lister</a><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L234">index.d.ts:234</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L234">index.d.ts:234</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="scanSync" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>scan<wbr/>Sync</span><a href="#scanSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -504,7 +504,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <a href="BlockingLister.html" class="tsd-signature-type tsd-kind-class">BlockingLister</a></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L257">index.d.ts:257</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L257">index.d.ts:257</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="stat" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>stat</span><a href="#stat" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -527,7 +527,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><a href="Metadata.html" class="tsd-signature-type tsd-kind-class">Metadata</a><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L55">index.d.ts:55</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L55">index.d.ts:55</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="statSync" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>stat<wbr/>Sync</span><a href="#statSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -544,7 +544,7 @@
<h5><span class="tsd-kind-parameter">path</span>: <span class="tsd-signature-type">string</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <a href="Metadata.html" class="tsd-signature-type tsd-kind-class">Metadata</a></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L67">index.d.ts:67</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L67">index.d.ts:67</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="write" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>write</span><a href="#write" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -563,7 +563,7 @@
<h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type ">Promise</span><span class="tsd-signature-symbol"><</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">></span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L143">index.d.ts:143</a></li></ul></aside></li></ul></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L143">index.d.ts:143</a></li></ul></aside></li></ul></section>
<section class="tsd-panel tsd-member"><a id="writeSync" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>write<wbr/>Sync</span><a href="#writeSync" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<ul class="tsd-signatures">
@@ -582,7 +582,7 @@
<h5><span class="tsd-kind-parameter">content</span>: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol"> | </span><span class="tsd-signature-type ">Buffer</span></h5></li></ul></div>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L154">index.d.ts:154</a></li></ul></aside></li></ul></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L154">index.d.ts:154</a></li></ul></aside></li></ul></section></section></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">
diff --git a/docs/nodejs/interfaces/PresignedRequest.html b/docs/nodejs/interfaces/PresignedRequest.html
index e82a703ae..e4d4c8b3a 100644
--- a/docs/nodejs/interfaces/PresignedRequest.html
+++ b/docs/nodejs/interfaces/PresignedRequest.html
@@ -20,7 +20,7 @@
<ul class="tsd-hierarchy">
<li><span class="target">PresignedRequest</span></li></ul></section><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L25">index.d.ts:25</a></li></ul></aside>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L25">index.d.ts:25</a></li></ul></aside>
<section class="tsd-panel-group tsd-index-group">
<section class="tsd-panel tsd-index-panel">
<details class="tsd-index-content tsd-index-accordion" open><summary class="tsd-accordion-summary tsd-index-summary">
@@ -40,21 +40,21 @@
<div class="tsd-comment tsd-typography"><p>HTTP headers of this request.</p>
</div><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L31">index.d.ts:31</a></li></ul></aside></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L31">index.d.ts:31</a></li></ul></aside></section>
<section class="tsd-panel tsd-member"><a id="method" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>method</span><a href="#method" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<div class="tsd-signature"><span class="tsd-kind-property">method</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<div class="tsd-comment tsd-typography"><p>HTTP method of this request.</p>
</div><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L27">index.d.ts:27</a></li></ul></aside></section>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L27">index.d.ts:27</a></li></ul></aside></section>
<section class="tsd-panel tsd-member"><a id="url" class="tsd-anchor"></a>
<h3 class="tsd-anchor-link"><span>url</span><a href="#url" aria-label="Permalink" class="tsd-anchor-icon"><svg class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><use href="#icon-anchor-a"></use><use href="#icon-anchor-b"></use><use href="#icon-anchor-c"></use></svg></a></h3>
<div class="tsd-signature"><span class="tsd-kind-property">url</span><span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<div class="tsd-comment tsd-typography"><p>URL of this request.</p>
</div><aside class="tsd-sources">
<ul>
-<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/d280e87/bindings/nodejs/index.d.ts#L29">index.d.ts:29</a></li></ul></aside></section></section></div>
+<li>Defined in <a href="https://github.com/apache/incubator-opendal/blob/a31ad05/bindings/nodejs/index.d.ts#L29">index.d.ts:29</a></li></ul></aside></section></section></div>
<div class="col-sidebar">
<div class="page-menu">
<div class="tsd-navigation settings">
diff --git a/docs/overview/index.html b/docs/overview/index.html
index ad52f026f..34242eb61 100644
--- a/docs/overview/index.html
+++ b/docs/overview/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Overview | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/overview"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/python/opendal.html b/docs/python/opendal.html
index 60d6e6a45..0719acc8d 100644
--- a/docs/python/opendal.html
+++ b/docs/python/opendal.html
@@ -156,22 +156,22 @@
<a class="class" href="#Metadata">Metadata</a>
<ul class="memberlist">
<li>
- <a class="variable" href="#Metadata.content_length">content_length</a>
+ <a class="variable" href="#Metadata.content_md5">content_md5</a>
</li>
<li>
- <a class="variable" href="#Metadata.etag">etag</a>
+ <a class="variable" href="#Metadata.content_length">content_length</a>
</li>
<li>
- <a class="variable" href="#Metadata.content_disposition">content_disposition</a>
+ <a class="variable" href="#Metadata.content_type">content_type</a>
</li>
<li>
- <a class="variable" href="#Metadata.content_md5">content_md5</a>
+ <a class="variable" href="#Metadata.mode">mode</a>
</li>
<li>
- <a class="variable" href="#Metadata.mode">mode</a>
+ <a class="variable" href="#Metadata.content_disposition">content_disposition</a>
</li>
<li>
- <a class="variable" href="#Metadata.content_type">content_type</a>
+ <a class="variable" href="#Metadata.etag">etag</a>
</li>
</ul>
@@ -855,78 +855,78 @@ The default value for whence is <code>SEEK_SET</code>. Values for <code>whence</
- <div id="Metadata.content_length" class="classattr">
+ <div id="Metadata.content_md5" class="classattr">
<div class="attr variable">
- <span class="name">content_length</span><span class="annotation">: int</span>
+ <span class="name">content_md5</span><span class="annotation">: Optional[str]</span>
</div>
- <a class="headerlink" href="#Metadata.content_length"></a>
+ <a class="headerlink" href="#Metadata.content_md5"></a>
- <div class="docstring"><p>Content length of this entry.</p>
+ <div class="docstring"><p>Content MD5 of this entry.</p>
</div>
</div>
- <div id="Metadata.etag" class="classattr">
+ <div id="Metadata.content_length" class="classattr">
<div class="attr variable">
- <span class="name">etag</span><span class="annotation">: Optional[str]</span>
+ <span class="name">content_length</span><span class="annotation">: int</span>
</div>
- <a class="headerlink" href="#Metadata.etag"></a>
+ <a class="headerlink" href="#Metadata.content_length"></a>
- <div class="docstring"><p>ETag of this entry.</p>
+ <div class="docstring"><p>Content length of this entry.</p>
</div>
</div>
- <div id="Metadata.content_disposition" class="classattr">
+ <div id="Metadata.content_type" class="classattr">
<div class="attr variable">
- <span class="name">content_disposition</span><span class="annotation">: Optional[str]</span>
+ <span class="name">content_type</span><span class="annotation">: Optional[str]</span>
</div>
- <a class="headerlink" href="#Metadata.content_disposition"></a>
-
+ <a class="headerlink" href="#Metadata.content_type"></a>
+ <div class="docstring"><p>Content Type of this entry.</p>
+</div>
+
</div>
- <div id="Metadata.content_md5" class="classattr">
+ <div id="Metadata.mode" class="classattr">
<div class="attr variable">
- <span class="name">content_md5</span><span class="annotation">: Optional[str]</span>
+ <span class="name">mode</span><span class="annotation">: <a href="#EntryMode">opendal.EntryMode</a></span>
</div>
- <a class="headerlink" href="#Metadata.content_md5"></a>
+ <a class="headerlink" href="#Metadata.mode"></a>
- <div class="docstring"><p>Content MD5 of this entry.</p>
+ <div class="docstring"><p>mode represent this entry's mode.</p>
</div>
</div>
- <div id="Metadata.mode" class="classattr">
+ <div id="Metadata.content_disposition" class="classattr">
<div class="attr variable">
- <span class="name">mode</span><span class="annotation">: <a href="#EntryMode">opendal.EntryMode</a></span>
+ <span class="name">content_disposition</span><span class="annotation">: Optional[str]</span>
</div>
- <a class="headerlink" href="#Metadata.mode"></a>
+ <a class="headerlink" href="#Metadata.content_disposition"></a>
+
- <div class="docstring"><p>mode represent this entry's mode.</p>
-</div>
-
</div>
- <div id="Metadata.content_type" class="classattr">
+ <div id="Metadata.etag" class="classattr">
<div class="attr variable">
- <span class="name">content_type</span><span class="annotation">: Optional[str]</span>
+ <span class="name">etag</span><span class="annotation">: Optional[str]</span>
</div>
- <a class="headerlink" href="#Metadata.content_type"></a>
+ <a class="headerlink" href="#Metadata.etag"></a>
- <div class="docstring"><p>Content Type of this entry.</p>
+ <div class="docstring"><p>ETag of this entry.</p>
</div>
diff --git a/docs/python/search.js b/docs/python/search.js
index 02d268617..eab3c89d5 100644
--- a/docs/python/search.js
+++ b/docs/python/search.js
@@ -1,6 +1,6 @@
window.pdocSearch = (function(){
/** elasticlunr - http://weixsong.github.io * Copyright (C) 2017 Oliver Nightingale * Copyright (C) 2017 Wei Song * MIT Licensed */!function(){function e(e){if(null===e||"object"!=typeof e)return e;var t=e.constructor();for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}var t=function(e){var n=new t.Index;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),e&&e.call(n,n),n};t.version="0.9.5",lunr=t,t.utils={},t.utils.warn=function(e){return function(t){e.console&&console.wa [...]
- /** pdoc search index */const docs = {"version": "0.9.5", "fields": ["qualname", "fullname", "annotation", "default_value", "signature", "bases", "doc"], "ref": "fullname", "documentStore": {"docs": {"opendal": {"fullname": "opendal", "modulename": "opendal", "kind": "module", "doc": "<p>OpenDAL Python binding</p>\n\n<h2 id=\"installation\">Installation</h2>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code>pip<span class=\"w\"> </span>install<span class=\"w\"> </span> [...]
+ /** pdoc search index */const docs = {"version": "0.9.5", "fields": ["qualname", "fullname", "annotation", "default_value", "signature", "bases", "doc"], "ref": "fullname", "documentStore": {"docs": {"opendal": {"fullname": "opendal", "modulename": "opendal", "kind": "module", "doc": "<p>OpenDAL Python binding</p>\n\n<h2 id=\"installation\">Installation</h2>\n\n<div class=\"pdoc-code codehilite\">\n<pre><span></span><code>pip<span class=\"w\"> </span>install<span class=\"w\"> </span> [...]
// mirrored in build-search-index.js (part 1)
// Also split on html tags. this is a cheap heuristic, but good enough.
diff --git a/docs/rust/implementors/core/clone/trait.Clone.js b/docs/rust/implementors/core/clone/trait.Clone.js
index 4bfec7a48..bc30a10cc 100644
--- a/docs/rust/implementors/core/clone/trait.Clone.js
+++ b/docs/rust/implementors/core/clone/trait.Clone.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl<S: <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> + <a class=\"trait\" href=\"opendal/raw/adapters/typed_kv/trait.Adapter.html\" title=\"trait opendal::raw::adapters::typed_kv::Adapter\">Adapter</a>> <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"opendal/raw/adap [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/clone/trait.Clone.html\" title=\"trait core::clone::Clone\">Clone</a> for <a class=\"struct\" href=\"opendal/services/struct.Azdfs.html\" title=\"struct opendal [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/cmp/trait.Eq.js b/docs/rust/implementors/core/cmp/trait.Eq.js
index 482af7018..18572af7d 100644
--- a/docs/rust/implementors/core/cmp/trait.Eq.js
+++ b/docs/rust/implementors/core/cmp/trait.Eq.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"opendal/raw/enum.Operation.html\" title=\"enum opendal::raw::Operation\">Operation</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"opendal/raw/struct.BytesContentRange.html\" title=\"struct opendal::raw::Byt [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"opendal/enum.ErrorKind.html\" title=\"enum opendal::ErrorKind\">ErrorKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"opendal/raw/struct.BytesContentRange.html\" title=\"struct opendal::raw::BytesContent [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/cmp/trait.PartialEq.js b/docs/rust/implementors/core/cmp/trait.PartialEq.js
index 319ee6942..008e43aff 100644
--- a/docs/rust/implementors/core/cmp/trait.PartialEq.js
+++ b/docs/rust/implementors/core/cmp/trait.PartialEq.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"opendal/raw/enum.Operation.html\" title=\"enum opendal::raw::Operation\">Operation</a>> for <a class=\"enum\" href=\"opendal/raw/enum.Operation.html\" title=\"enum opendal::raw::Operation\">Operation</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/cmp/trait.PartialEq.html [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/cmp/trait.PartialEq.html\" title=\"trait core::cmp::PartialEq\">PartialEq</a><<a class=\"enum\" href=\"opendal/raw/oio/enum.WriteOperation.html\" title=\"enum opendal::raw::oio::WriteOperation\">WriteOperation</a>> for <a class=\"enum\" href=\"opendal/raw/oio/enum.WriteOperation.html\" title=\"enum opendal::raw::oio::WriteOperation\">WriteOperation</a>"],["impl <a class=\"trait\" href=\"https://doc.ru [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/convert/trait.From.js b/docs/rust/implementors/core/convert/trait.From.js
index ed6c61b0a..a1fe7f207 100644
--- a/docs/rust/implementors/core/convert/trait.From.js
+++ b/docs/rust/implementors/core/convert/trait.From.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"struct\" href=\"opendal/raw/struct.OpDelete.html\" title=\"struct opendal::raw::OpDelete\">OpDelete</a>> for <a class=\"enum\" href=\"opendal/raw/enum.BatchOperation.html\" title=\"enum opendal::raw::BatchOperation\">BatchOperation</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/convert/trait [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/convert/trait.From.html\" title=\"trait core::convert::From\">From</a><<a class=\"enum\" href=\"opendal/enum.ErrorKind.html\" title=\"enum opendal::ErrorKind\">ErrorKind</a>> for &'static <a class=\"primitive\" href=\"https://doc.rust-lang.org/1.71.1/std/primitive.str.html\">str</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/convert/trait.From.html\" title=\"trait cor [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/default/trait.Default.js b/docs/rust/implementors/core/default/trait.Default.js
index 415e8bfce..e376013b4 100644
--- a/docs/rust/implementors/core/default/trait.Default.js
+++ b/docs/rust/implementors/core/default/trait.Default.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"opendal/services/struct.Postgresql.html\" title=\"struct opendal::services::Postgresql\">PostgresqlBuilder</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"open [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"opendal/raw/struct.RpRename.html\" title=\"struct opendal::raw::RpRename\">RpRename</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/default/trait.Default.html\" title=\"trait core::default::Default\">Default</a> for <a class=\"struct\" href=\"opendal/raw/struct.RpCreate [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/fmt/trait.Debug.js b/docs/rust/implementors/core/fmt/trait.Debug.js
index 48540cbc6..bfbb6c240 100644
--- a/docs/rust/implementors/core/fmt/trait.Debug.js
+++ b/docs/rust/implementors/core/fmt/trait.Debug.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"opendal/services/struct.Supabase.html\" title=\"struct opendal::services::Supabase\">SupabaseBuilder</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"opendal/raw/struct.RpStat.html\" title [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"opendal/services/struct.Azdfs.html\" title=\"struct opendal::services::Azdfs\">AzdfsBuilder</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/fmt/trait.Debug.html\" title=\"trait core::fmt::Debug\">Debug</a> for <a class=\"struct\" href=\"opendal/raw/oio/struct.Entry.html\" title=\"str [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/fmt/trait.Display.js b/docs/rust/implementors/core/fmt/trait.Display.js
index adbb962ca..3f0c3e174 100644
--- a/docs/rust/implementors/core/fmt/trait.Display.js
+++ b/docs/rust/implementors/core/fmt/trait.Display.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"opendal/raw/enum.Operation.html\" title=\"enum opendal::raw::Operation\">Operation</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"opendal/raw/oio/enum.ReadOperation.html\" title= [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"opendal/raw/enum.Operation.html\" title=\"enum opendal::raw::Operation\">Operation</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"opendal/raw/oio/enum.AppendOperation.html\" titl [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/future/future/trait.Future.js b/docs/rust/implementors/core/future/future/trait.Future.js
index 0fb75240a..3cd76682a 100644
--- a/docs/rust/implementors/core/future/future/trait.Future.js
+++ b/docs/rust/implementors/core/future/future/trait.Future.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/future/future/trait.Future.html\" title=\"trait core::future::future::Future\">Future</a> for <a class=\"struct\" href=\"opendal/operator_futures/struct.FutureAppend.html\" title=\"struct opendal::operator_futures::FutureAppend\">FutureAppend</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/future/future/trait.Future.html\" title=\"trait core::future::future::Future\">Future</a> [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/future/future/trait.Future.html\" title=\"trait core::future::future::Future\">Future</a> for <a class=\"struct\" href=\"opendal/operator_futures/struct.FutureWriter.html\" title=\"struct opendal::operator_futures::FutureWriter\">FutureWriter</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/future/future/trait.Future.html\" title=\"trait core::future::future::Future\">Future</a> [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/hash/trait.Hash.js b/docs/rust/implementors/core/hash/trait.Hash.js
index 3f7e4f2ea..0729c290b 100644
--- a/docs/rust/implementors/core/hash/trait.Hash.js
+++ b/docs/rust/implementors/core/hash/trait.Hash.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"opendal/raw/enum.Operation.html\" title=\"enum opendal::raw::Operation\">Operation</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"opendal/raw/oio/enum.WriteOperation.html\" title=\"enum openda [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"opendal/enum.Scheme.html\" title=\"enum opendal::Scheme\">Scheme</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/hash/trait.Hash.html\" title=\"trait core::hash::Hash\">Hash</a> for <a class=\"enum\" href=\"opendal/raw/oio/enum.AppendOperation.html\" title=\"enum opendal::raw::oio::Appe [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/iter/traits/iterator/trait.Iterator.js b/docs/rust/implementors/core/iter/traits/iterator/trait.Iterator.js
index 858085715..f3f512e5a 100644
--- a/docs/rust/implementors/core/iter/traits/iterator/trait.Iterator.js
+++ b/docs/rust/implementors/core/iter/traits/iterator/trait.Iterator.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/iter/traits/iterator/trait.Iterator.html\" title=\"trait core::iter::traits::iterator::Iterator\">Iterator</a> for <a class=\"struct\" href=\"opendal/struct.BlockingReader.html\" title=\"struct opendal::BlockingReader\">BlockingReader</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/iter/traits/iterator/trait.Iterator.html\" title=\"trait core::iter::traits::iterator::Iterator\"> [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/iter/traits/iterator/trait.Iterator.html\" title=\"trait core::iter::traits::iterator::Iterator\">Iterator</a> for <a class=\"struct\" href=\"opendal/struct.BlockingLister.html\" title=\"struct opendal::BlockingLister\">BlockingLister</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/iter/traits/iterator/trait.Iterator.html\" title=\"trait core::iter::traits::iterator::Iterator\"> [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/marker/trait.Copy.js b/docs/rust/implementors/core/marker/trait.Copy.js
index bd612b614..9e84ebe72 100644
--- a/docs/rust/implementors/core/marker/trait.Copy.js
+++ b/docs/rust/implementors/core/marker/trait.Copy.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"opendal/enum.Scheme.html\" title=\"enum opendal::Scheme\">Scheme</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"opendal/raw/oio/enum.AppendOperation.html\" title=\"enum opendal::raw::o [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"opendal/raw/oio/enum.PageOperation.html\" title=\"enum opendal::raw::oio::PageOperation\">PageOperation</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.Copy.html\" title=\"trait core::marker::Copy\">Copy</a> for <a class=\"enum\" href=\"opendal/raw/oio/enum.AppendOperat [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/marker/trait.StructuralEq.js b/docs/rust/implementors/core/marker/trait.StructuralEq.js
index 9af5f9264..6226cc79e 100644
--- a/docs/rust/implementors/core/marker/trait.StructuralEq.js
+++ b/docs/rust/implementors/core/marker/trait.StructuralEq.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"opendal/enum.Metakey.html\" title=\"enum opendal::Metakey\">Metakey</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"opendal/raw/oio/enum. [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"opendal/enum.Scheme.html\" title=\"enum opendal::Scheme\">Scheme</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"opendal/raw/oio/enum.Rea [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/marker/trait.StructuralPartialEq.js b/docs/rust/implementors/core/marker/trait.StructuralPartialEq.js
index 13bd756f3..635d8238c 100644
--- a/docs/rust/implementors/core/marker/trait.StructuralPartialEq.js
+++ b/docs/rust/implementors/core/marker/trait.StructuralPartialEq.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"enum\" href=\"opendal/enum.ErrorKind.html\" title=\"enum opendal::ErrorKind\">ErrorKind</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> fo [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">StructuralPartialEq</a> for <a class=\"struct\" href=\"opendal/raw/struct.BytesRange.html\" title=\"struct opendal::raw::BytesRange\">BytesRange</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.StructuralPartialEq.html\" title=\"trait core::marker::StructuralPartialEq\">Structur [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/marker/trait.Sync.js b/docs/rust/implementors/core/marker/trait.Sync.js
index 65e4de404..e825181a8 100644
--- a/docs/rust/implementors/core/marker/trait.Sync.js
+++ b/docs/rust/implementors/core/marker/trait.Sync.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>",1,["opendal::types::mode::EntryMode"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"opendal/struct.Entry.ht [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"enum\" href=\"opendal/enum.EntryMode.html\" title=\"enum opendal::EntryMode\">EntryMode</a>",1,["opendal::types::mode::EntryMode"]],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/marker/trait.Sync.html\" title=\"trait core::marker::Sync\">Sync</a> for <a class=\"struct\" href=\"opendal/struct.Entry.ht [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/core/str/traits/trait.FromStr.js b/docs/rust/implementors/core/str/traits/trait.FromStr.js
index eaf0f8607..c513d9230 100644
--- a/docs/rust/implementors/core/str/traits/trait.FromStr.js
+++ b/docs/rust/implementors/core/str/traits/trait.FromStr.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"struct\" href=\"opendal/raw/struct.BytesContentRange.html\" title=\"struct opendal::raw::BytesContentRange\">BytesContentRange</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"st [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"enum\" href=\"opendal/enum.Scheme.html\" title=\"enum opendal::Scheme\">Scheme</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/core/str/traits/trait.FromStr.html\" title=\"trait core::str::traits::FromStr\">FromStr</a> for <a class=\"struct\" href=\"opendal/raw/struct.BytesContentRan [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/futures_core/stream/trait.Stream.js b/docs/rust/implementors/futures_core/stream/trait.Stream.js
index 310ab500d..8d95dd0c8 100644
--- a/docs/rust/implementors/futures_core/stream/trait.Stream.js
+++ b/docs/rust/implementors/futures_core/stream/trait.Stream.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl Stream for <a class=\"struct\" href=\"opendal/struct.Reader.html\" title=\"struct opendal::Reader\">Reader</a>"],["impl Stream for dyn <a class=\"trait\" href=\"opendal/raw/oio/trait.Stream.html\" title=\"trait opendal::raw::oio::Stream\">Stream</a>"],["impl Stream for <a class=\"struct\" href=\"opendal/struct.Lister.html\" title=\"struct opendal::Lister\">Lister</a>"],["impl Stream for dyn <a class=\"trait\" href=\"opendal/raw/oio/trait.Read.html\" title=\"trait openda [...]
+"opendal":[["impl Stream for <a class=\"struct\" href=\"opendal/struct.Lister.html\" title=\"struct opendal::Lister\">Lister</a>"],["impl Stream for <a class=\"struct\" href=\"opendal/struct.Reader.html\" title=\"struct opendal::Reader\">Reader</a>"],["impl Stream for dyn <a class=\"trait\" href=\"opendal/raw/oio/trait.Stream.html\" title=\"trait opendal::raw::oio::Stream\">Stream</a>"],["impl Stream for dyn <a class=\"trait\" href=\"opendal/raw/oio/trait.Read.html\" title=\"trait openda [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/futures_io/if_std/trait.AsyncSeek.js b/docs/rust/implementors/futures_io/if_std/trait.AsyncSeek.js
index 1bb92a831..dd027188f 100644
--- a/docs/rust/implementors/futures_io/if_std/trait.AsyncSeek.js
+++ b/docs/rust/implementors/futures_io/if_std/trait.AsyncSeek.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl AsyncSeek for <a class=\"struct\" href=\"opendal/struct.Reader.html\" title=\"struct opendal::Reader\">Reader</a>"],["impl AsyncSeek for dyn <a class=\"trait\" href=\"opendal/raw/oio/trait.Read.html\" title=\"trait opendal::raw::oio::Read\">Read</a>"]]
+"opendal":[["impl AsyncSeek for dyn <a class=\"trait\" href=\"opendal/raw/oio/trait.Read.html\" title=\"trait opendal::raw::oio::Read\">Read</a>"],["impl AsyncSeek for <a class=\"struct\" href=\"opendal/struct.Reader.html\" title=\"struct opendal::Reader\">Reader</a>"]]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/std/io/trait.Read.js b/docs/rust/implementors/std/io/trait.Read.js
index f4c14a812..1d2388c29 100644
--- a/docs/rust/implementors/std/io/trait.Read.js
+++ b/docs/rust/implementors/std/io/trait.Read.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html\" title=\"trait std::io::Read\">Read</a> for dyn <a class=\"trait\" href=\"opendal/raw/oio/trait.BlockingRead.html\" title=\"trait opendal::raw::oio::BlockingRead\">BlockingRead</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html\" title=\"trait std::io::Read\">Read</a> for <a class=\"struct\" href=\"opendal/struct.BlockingReader.html\" title=\"st [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html\" title=\"trait std::io::Read\">Read</a> for <a class=\"struct\" href=\"opendal/struct.BlockingReader.html\" title=\"struct opendal::BlockingReader\">BlockingReader</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html\" title=\"trait std::io::Read\">Read</a> for dyn <a class=\"trait\" href=\"opendal/raw/oio/trait.BlockingRead.html\" title=\"trait o [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/implementors/std/io/trait.Seek.js b/docs/rust/implementors/std/io/trait.Seek.js
index 956d23033..a42ebc4f2 100644
--- a/docs/rust/implementors/std/io/trait.Seek.js
+++ b/docs/rust/implementors/std/io/trait.Seek.js
@@ -1,3 +1,3 @@
(function() {var implementors = {
-"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/std/io/trait.Seek.html\" title=\"trait std::io::Seek\">Seek</a> for dyn <a class=\"trait\" href=\"opendal/raw/oio/trait.BlockingRead.html\" title=\"trait opendal::raw::oio::BlockingRead\">BlockingRead</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/std/io/trait.Seek.html\" title=\"trait std::io::Seek\">Seek</a> for <a class=\"struct\" href=\"opendal/struct.BlockingReader.html\" title=\"st [...]
+"opendal":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/std/io/trait.Seek.html\" title=\"trait std::io::Seek\">Seek</a> for <a class=\"struct\" href=\"opendal/struct.BlockingReader.html\" title=\"struct opendal::BlockingReader\">BlockingReader</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.71.1/std/io/trait.Seek.html\" title=\"trait std::io::Seek\">Seek</a> for dyn <a class=\"trait\" href=\"opendal/raw/oio/trait.BlockingRead.html\" title=\"trait o [...]
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
\ No newline at end of file
diff --git a/docs/rust/opendal/enum.EntryMode.html b/docs/rust/opendal/enum.EntryMode.html
index 3af20cf70..41c36bf6a 100644
--- a/docs/rust/opendal/enum.EntryMode.html
+++ b/docs/rust/opendal/enum.EntryMode.html
@@ -8,7 +8,7 @@
</div><section id="variant.Unknown" class="variant"><a href="#variant.Unknown" class="anchor">§</a><h3 class="code-header">Unknown</h3></section><div class="docblock"><p>Unknown means we don’t know what we can do on this path.</p>
</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-EntryMode" class="impl"><a class="srclink rightside" href="../src/opendal/types/mode.rs.html#32-41">source</a><a href="#impl-EntryMode" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.EntryMode.html" title="enum opendal::Ent [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_dir" class="method"><a class="srclink rightside" href="../src/opendal/types/mode.rs.html#38-40">source</a><h4 class="code-header">pub fn <a href="#method.is_dir" class="fn">is_dir</a>(self) -> <a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if this mode is DIR.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-EntryMode" class="impl"><a class="srclink rightside" href="../src/opendal/types/mode.rs.html#22">source</a><a href="#impl-Clone-for-EntryMode" class="anchor">§</a><h3 class="code-header">impl [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-EntryMode" class="impl"><a class="srclink rightside" href="../src/opendal/types/mode.rs.html#22">source</a><a href="#impl-Clone-for-EntryMode" class="anchor">§</a><h3 class="code-header">impl [...]
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.71.1/src/core/cmp.rs.html#226">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.71.1/core/cmp/trait.PartialEq.html#method.ne" clas [...]
sufficient, and should not be overridden without very good reason.</div></details></div></details><section id="impl-Copy-for-EntryMode" class="impl"><a class="srclink rightside" href="../src/opendal/types/mode.rs.html#22">source</a><a href="#impl-Copy-for-EntryMode" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Copy.html" title="trait core::marker::Copy">Copy</a> for <a class="enum" href="enum.EntryMode.html" ti [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
diff --git a/docs/rust/opendal/enum.Metakey.html b/docs/rust/opendal/enum.Metakey.html
index 5ca2313de..4e996ce49 100644
--- a/docs/rust/opendal/enum.Metakey.html
+++ b/docs/rust/opendal/enum.Metakey.html
@@ -31,9 +31,9 @@ already contains all metadata.</p>
</div><section id="variant.Etag" class="variant"><a href="#variant.Etag" class="anchor">§</a><h3 class="code-header">Etag</h3></section><div class="docblock"><p>Key for etag.</p>
</div><section id="variant.LastModified" class="variant"><a href="#variant.LastModified" class="anchor">§</a><h3 class="code-header">LastModified</h3></section><div class="docblock"><p>Key for last last modified.</p>
</div><section id="variant.Version" class="variant"><a href="#variant.Version" class="anchor">§</a><h3 class="code-header">Version</h3></section><div class="docblock"><p>Key for version.</p>
-</div></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BitAnd%3CR%3E-for-Metakey" class="impl"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#513-553">source</a><a href="#impl-BitAnd%3CR%3E-for-Metakey" class="anchor">§</a><h3 class="code-header">impl<R: [...]
+</div></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BitAnd%3CR%3E-for-Metakey" class="impl"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#513-553">source</a><a href="#impl-BitAnd%3CR%3E-for-Metakey" class="anchor">§</a><h3 class="code-header">impl<R: [...]
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.71.1/src/core/cmp.rs.html#226">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.71.1/core/cmp/trait.PartialEq.html#method.ne" clas [...]
-sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Rem%3CR%3E-for-Metakey" class="impl"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#513-553">source</a><a href="#impl-Rem%3CR%3E-for-Metakey" class="anchor">§</a><h3 class="code-header">impl<R: <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/convert/trait.Into.html" title="tr [...]
+sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Rem%3CR%3E-for-Metakey" class="impl"><a class="srclink rightside" href="../src/opendal/types/metadata.rs.html#513-553">source</a><a href="#impl-Rem%3CR%3E-for-Metakey" class="anchor">§</a><h3 class="code-header">impl<R: <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/convert/trait.Into.html" title="tr [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a hr [...]
diff --git a/docs/rust/opendal/enum.Scheme.html b/docs/rust/opendal/enum.Scheme.html
index 5f2b5afaa..105f4db8a 100644
--- a/docs/rust/opendal/enum.Scheme.html
+++ b/docs/rust/opendal/enum.Scheme.html
@@ -90,7 +90,7 @@
<li>Custom must be lowed cases.</li>
</ul>
</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Scheme" class="impl"><a class="srclink rightside" href="../src/opendal/types/scheme.rs.html#120-125">source</a><a href="#impl-Scheme" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Scheme.html" title="enum opendal::Scheme"> [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Scheme" class="impl"><a class="srclink rightside" href="../src/opendal/types/scheme.rs.html#31">source</a><a href="#impl-Clone-for-Scheme" class="anchor">§</a><h3 class="code-header">impl <a c [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Scheme" class="impl"><a class="srclink rightside" href="../src/opendal/types/scheme.rs.html#31">source</a><a href="#impl-Clone-for-Scheme" class="anchor">§</a><h3 class="code-header">impl <a c [...]
H: <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
Self: <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/1.71.1/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/1.71.1/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></det [...]
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.71.1/src/core/cmp.rs.html#226">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.71.1/core/cmp/trait.PartialEq.html#method.ne" clas [...]
diff --git a/docs/rust/opendal/raw/enum.Operation.html b/docs/rust/opendal/raw/enum.Operation.html
index e3b9c8e73..b98681b58 100644
--- a/docs/rust/opendal/raw/enum.Operation.html
+++ b/docs/rust/opendal/raw/enum.Operation.html
@@ -41,7 +41,7 @@
</div><section id="variant.BlockingDelete" class="variant"><a href="#variant.BlockingDelete" class="anchor">§</a><h3 class="code-header">BlockingDelete</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.blocking_delete" title="method opendal::raw::Accessor::blocking_delete"><code>crate::raw::Accessor::blocking_delete</code></a></p>
</div><section id="variant.BlockingList" class="variant"><a href="#variant.BlockingList" class="anchor">§</a><h3 class="code-header">BlockingList</h3></section><div class="docblock"><p>Operation for <a href="trait.Accessor.html#method.blocking_list" title="method opendal::raw::Accessor::blocking_list"><code>crate::raw::Accessor::blocking_list</code></a></p>
</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Operation" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/operation.rs.html#68-73">source</a><a href="#impl-Operation" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Operation.html" title="enum openda [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Operation" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/operation.rs.html#22">source</a><a href="#impl-Clone-for-Operation" class="anchor">§</a><h3 class="code-header" [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Operation" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/operation.rs.html#22">source</a><a href="#impl-Clone-for-Operation" class="anchor">§</a><h3 class="code-header" [...]
H: <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
Self: <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/1.71.1/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/1.71.1/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></det [...]
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.71.1/src/core/cmp.rs.html#226">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.71.1/core/cmp/trait.PartialEq.html#method.ne" clas [...]
diff --git a/docs/rust/opendal/raw/enum.PresignOperation.html b/docs/rust/opendal/raw/enum.PresignOperation.html
index 967874aff..bf720a47b 100644
--- a/docs/rust/opendal/raw/enum.PresignOperation.html
+++ b/docs/rust/opendal/raw/enum.PresignOperation.html
@@ -6,7 +6,7 @@
</div></details><h2 id="variants" class="variants small-section-header">Variants (Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details class="toggle non-exhaustive"><summary class="hideme"><span>This enum is marked as non-exhaustive</span></summary><div class="docblock">Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variant [...]
</div><section id="variant.Read" class="variant"><a href="#variant.Read" class="anchor">§</a><h3 class="code-header">Read(<a class="struct" href="struct.OpRead.html" title="struct opendal::raw::OpRead">OpRead</a>)</h3></section><div class="docblock"><p>Presign a read operation.</p>
</div><section id="variant.Write" class="variant"><a href="#variant.Write" class="anchor">§</a><h3 class="code-header">Write(<a class="struct" href="struct.OpWrite.html" title="struct opendal::raw::OpWrite">OpWrite</a>)</h3></section><div class="docblock"><p>Presign a write operation.</p>
-</div></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-PresignOperation" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#183">source</a><a href="#impl-Clone-for-PresignOperation" class="anchor">§</a><h3 class="code-header">impl <a class="t [...]
+</div></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-PresignOperation" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/ops.rs.html#183">source</a><a href="#impl-Clone-for-PresignOperation" class="anchor">§</a><h3 class="code-header">impl <a class="t [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a hr [...]
diff --git a/docs/rust/opendal/raw/oio/enum.ReadOperation.html b/docs/rust/opendal/raw/oio/enum.ReadOperation.html
index 5cdb5ea06..855b640f6 100644
--- a/docs/rust/opendal/raw/oio/enum.ReadOperation.html
+++ b/docs/rust/opendal/raw/oio/enum.ReadOperation.html
@@ -13,7 +13,7 @@
</div><section id="variant.BlockingSeek" class="variant"><a href="#variant.BlockingSeek" class="anchor">§</a><h3 class="code-header">BlockingSeek</h3></section><div class="docblock"><p>Operation for <a href="trait.BlockingRead.html#tymethod.seek" title="method opendal::raw::oio::BlockingRead::seek"><code>BlockingRead::seek</code></a></p>
</div><section id="variant.BlockingNext" class="variant"><a href="#variant.BlockingNext" class="anchor">§</a><h3 class="code-header">BlockingNext</h3></section><div class="docblock"><p>Operation for <a href="trait.BlockingRead.html#tymethod.next" title="method opendal::raw::oio::BlockingRead::next"><code>BlockingRead::next</code></a></p>
</div></div><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ReadOperation" class="impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read/api.rs.html#50-55">source</a><a href="#impl-ReadOperation" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.ReadOperation.html" [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ReadOperation" class="impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read/api.rs.html#33">source</a><a href="#impl-Clone-for-ReadOperation" class="anchor">§</a><h3 class [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ReadOperation" class="impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read/api.rs.html#33">source</a><a href="#impl-Clone-for-ReadOperation" class="anchor">§</a><h3 class [...]
H: <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
Self: <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/1.71.1/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/1.71.1/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></det [...]
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.71.1/src/core/cmp.rs.html#226">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.71.1/core/cmp/trait.PartialEq.html#method.ne" clas [...]
diff --git a/docs/rust/opendal/raw/oio/struct.Cursor.html b/docs/rust/opendal/raw/oio/struct.Cursor.html
index 182e6150f..44f510e90 100644
--- a/docs/rust/opendal/raw/oio/struct.Cursor.html
+++ b/docs/rust/opendal/raw/oio/struct.Cursor.html
@@ -1,7 +1,7 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Cursor is the cursor for `Bytes` that implements `oio::Read`"><title>Cursor in opendal::raw::oio - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font [...]
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Cursor" class="impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/cursor.rs.html#37-48">source</a><a href="#impl-Cursor" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Cursor.html" title="struct o [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.remaining_slice" class="method"><a class="srclink rightside" href="../../../src/opendal/raw/oio/cursor.rs.html#44-47">source</a><h4 class="code-header">pub fn <a href="#method.remaining_slice" class="fn">remaining_slice</a>(&self) -> &[<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.u8.html">u8</a>] <a href="#" class="tooltip" data-notable-ty="&[u8]">ⓘ</a></h4> [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingRead-for-Cursor" class="impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/cursor.rs.html#108-149">source</a><a href="#impl-BlockingRead-for-Cursor" class="anchor">§</a><h3 cl [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingRead-for-Cursor" class="impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/cursor.rs.html#108-149">source</a><a href="#impl-BlockingRead-for-Cursor" class="anchor">§</a><h3 cl [...]
&mut self,
_: &mut <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a><'_>,
buf: &mut [<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.u8.html">u8</a>]
diff --git a/docs/rust/opendal/raw/oio/trait.BlockingPage.html b/docs/rust/opendal/raw/oio/trait.BlockingPage.html
index 60481e891..17b3a1b63 100644
--- a/docs/rust/opendal/raw/oio/trait.BlockingPage.html
+++ b/docs/rust/opendal/raw/oio/trait.BlockingPage.html
@@ -5,6 +5,6 @@
</div></details><h2 id="required-methods" class="small-section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.next" class="method"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page/api.rs.html#104">source</a><h4 class="code-header">fn <a href="#tymethod.next" class="fn">next</a>(&mut self) -> <a class="type" href="../../type.Result.html" t [...]
<p><code>Ok(None)</code> means all pages have been returned. Any following call
to <code>next</code> will always get the same result.</p>
-</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-BlockingPage-for-Option%3CP%3E" class="impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page/api.rs.html#123-130">source</a><a href="#impl-BlockingPage-for-Option%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P: <a class="trait" h [...]
+</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-BlockingPage-for-()" class="impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page/api.rs.html#116-120">source</a><a href="#impl-BlockingPage-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.BlockingPage.html [...]
A: <a class="trait" href="../trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a><BlockingPager = P>,
P: <a class="trait" href="trait.BlockingPage.html" title="trait opendal::raw::oio::BlockingPage">BlockingPage</a>,</span></h3></section><section id="impl-BlockingPage-for-HierarchyPager%3CP%3E" class="impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/page/into_hierarchy_pager.rs.html#136-150">source</a><a href="#impl-BlockingPage-for-HierarchyPager%3CP%3E" class="anchor">§</a><h3 class="code-header">impl<P: <a class="trait" href="trait.BlockingPage.html" title= [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/trait.BlockingRead.html b/docs/rust/opendal/raw/oio/trait.BlockingRead.html
index bb432e2a0..8a8b142c0 100644
--- a/docs/rust/opendal/raw/oio/trait.BlockingRead.html
+++ b/docs/rust/opendal/raw/oio/trait.BlockingRead.html
@@ -17,9 +17,9 @@ is optional. We use <code>Read</code> to make users life easier.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.next" class="method"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read/api.rs.html#304">source</a><h4 class="code-header">fn <a href="#tymethod.next" class="fn">next</a>(&mut self) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="type" href="../../type.Result.html" title="type o [...]
</div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Iterator-for-dyn+BlockingRead" class="impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read/api.rs.html#363-371">source</a><a href="#impl-Iterator-for-dyn+BlockingRead" class="anchor">§</a><h3 clas [...]
how many bytes were read. <a href="https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html#tymethod.read">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_vectored" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.36.0">1.36.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.71.1/src/std/io/mod.rs.html#662">source</a></span><a href="#method.read_vectored" class="a [...]
-implementation. <a href="https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html#method.is_read_vectored">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.71.1/src/std/io/mod.rs.html#726">source</a></span><a href="#method.read_to_end" class="anchor" [...]
+implementation. <a href="https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html#method.is_read_vectored">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.71.1/src/std/io/mod.rs.html#726">source</a></span><a href="#method.read_to_end" class="anchor" [...]
To make BlockingReader work as expected, we must add this impl.</p>
-</div><div class="impl-items"><section id="method.read-1" class="method trait-impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read/api.rs.html#334-336">source</a><a href="#method.read-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.read" class="fn">read</a>(&mut self, buf: &mut [<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.u8.html">u8</a>]) -> <a class="type" href="../../type.Result.html" title="type opend [...]
+</div><div class="impl-items"><section id="method.read-2" class="method trait-impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read/api.rs.html#334-336">source</a><a href="#method.read-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.read" class="fn">read</a>(&mut self, buf: &mut [<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.u8.html">u8</a>]) -> <a class="type" href="../../type.Result.html" title="type opend [...]
A: <a class="trait" href="../trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a><BlockingReader = R>,
R: <a class="trait" href="trait.BlockingRead.html" title="trait opendal::raw::oio::BlockingRead">BlockingRead</a>,</span></h3></section><section id="impl-BlockingRead-for-FromFileReader%3CR%3E" class="impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/read/into_read_from_file.rs.html#134-192">source</a><a href="#impl-BlockingRead-for-FromFileReader%3CR%3E" class="anchor">§</a><h3 class="code-header">impl<R> <a class="trait" href="trait.BlockingRead.html" titl [...]
- R: <a class="trait" href="https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html" title="trait std::io::Read">Read</a> + <a class="trait" href="https://doc.rust-lang.org/1.71.1/std/io/trait.Seek.html" title="trait std::io::Seek">Seek</a> + <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sync.html" title="trait core::marker::Sync"> [...]
\ No newline at end of file
+ R: <a class="trait" href="https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html" title="trait std::io::Read">Read</a> + <a class="trait" href="https://doc.rust-lang.org/1.71.1/std/io/trait.Seek.html" title="trait std::io::Seek">Seek</a> + <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sync.html" title="trait core::marker::Sync"> [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/oio/trait.Stream.html b/docs/rust/opendal/raw/oio/trait.Stream.html
index bcab78616..4ef131f91 100644
--- a/docs/rust/opendal/raw/oio/trait.Stream.html
+++ b/docs/rust/opendal/raw/oio/trait.Stream.html
@@ -10,6 +10,6 @@
cx: &mut <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a><'_>
) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a><<a class="enum" href="https://doc.rust-lang.org/1.71.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><Self::Item>></h4></section></summary><div class='docblock'>Attempt to pull out the next value of this stream, registering the
current task for wakeup if the value is not yet available, and returning
-<code>None</code> if the stream is exhausted. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.size_hint" class="method trait-impl"><a href="#method.size_hint" class="anchor">§</a><h4 class="code-header">fn <a class="fn">size_hint</a>(&self) -> (<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.usize.html">usize</a>, <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/option/enum.Option.html" ti [...]
+<code>None</code> if the stream is exhausted. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.size_hint" class="method trait-impl"><a href="#method.size_hint" class="anchor">§</a><h4 class="code-header">fn <a class="fn">size_hint</a>(&self) -> (<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.usize.html">usize</a>, <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/option/enum.Option.html" ti [...]
To make Streamer work as expected, we must add this impl.</p>
-</div><div class="impl-items"><section id="method.poll_next-1" class="method trait-impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/stream/api.rs.html#48-50">source</a><a href="#method.poll_next-1" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_next" class="fn">poll_next</a>(&mut self, cx: &mut <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</ [...]
\ No newline at end of file
+</div><div class="impl-items"><section id="method.poll_next-2" class="method trait-impl"><a class="srclink rightside" href="../../../src/opendal/raw/oio/stream/api.rs.html#48-50">source</a><a href="#method.poll_next-2" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.poll_next" class="fn">poll_next</a>(&mut self, cx: &mut <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</ [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/struct.BytesContentRange.html b/docs/rust/opendal/raw/struct.BytesContentRange.html
index c6161eae5..29c7c688a 100644
--- a/docs/rust/opendal/raw/struct.BytesContentRange.html
+++ b/docs/rust/opendal/raw/struct.BytesContentRange.html
@@ -22,8 +22,8 @@ Please make sure their comes up with <code>with_range</code> or <code>with_size<
</div></details><details class="toggle method-toggle" open><summary><section id="method.to_header" class="method"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#111-113">source</a><h4 class="code-header">pub fn <a href="#method.to_header" class="fn">to_header</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/1.71.1/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary>< [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.from_bytes_range" class="method"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#116-125">source</a><h4 class="code-header">pub fn <a href="#method.from_bytes_range" class="fn">from_bytes_range</a>(total_size: <a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.u64.html">u64</a>, range: <a class="struct" href="struct.BytesRange.html" [...]
</div></details><details class="toggle method-toggle" open><summary><section id="method.to_bytes_range" class="method"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#128-134">source</a><h4 class="code-header">pub fn <a href="#method.to_bytes_range" class="fn">to_bytes_range</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" hr [...]
-</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-BytesContentRange" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#52">source</a><a href="#impl-Clone-for-BytesContentRange" class=" [...]
- __D: <a class="trait" href="https://docs.rs/serde/1.0.166/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.166/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Disp [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-BytesContentRange" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#52">source</a><a href="#impl-Clone-for-BytesContentRange" class=" [...]
+ __D: <a class="trait" href="https://docs.rs/serde/1.0.166/serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a><'de>,</span></h4></section></summary><div class='docblock'>Deserialize this value from the given Serde deserializer. <a href="https://docs.rs/serde/1.0.166/serde/de/trait.Deserialize.html#tymethod.deserialize">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Disp [...]
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.71.1/src/core/cmp.rs.html#226">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.71.1/core/cmp/trait.PartialEq.html#method.ne" clas [...]
sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Serialize-for-BytesContentRange" class="impl"><a class="srclink rightside" href="../../src/opendal/raw/http_util/bytes_content_range.rs.html#52">source</a><a href="#impl-Serialize-for-BytesContentRange" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://docs.rs/serde/1.0.166/serde/ser/tra [...]
__S: <a class="trait" href="https://docs.rs/serde/1.0.166/serde/ser/trait.Serializer.html" title="trait serde::ser::Serializer">Serializer</a>,</span></h4></section></summary><div class='docblock'>Serialize this value into the given Serde serializer. <a href="https://docs.rs/serde/1.0.166/serde/ser/trait.Serialize.html#tymethod.serialize">Read more</a></div></details></div></details><section id="impl-Copy-for-BytesContentRange" class="impl"><a class="srclink rightside" href="../../sr [...]
diff --git a/docs/rust/opendal/services/struct.Redis.html b/docs/rust/opendal/services/struct.Redis.html
index a56e4b454..95159b633 100644
--- a/docs/rust/opendal/services/struct.Redis.html
+++ b/docs/rust/opendal/services/struct.Redis.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Redis services support."><title>Redis in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.fi [...]
+<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Redis services support."><title>Redis in opendal::services - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.fi [...]
<h3 id="capabilities"><a href="#capabilities">Capabilities</a></h3>
<p>This service can be used to:</p>
<ul>
@@ -29,6 +29,7 @@ blocking</li>
<ul>
<li><code>root</code>: Set the working directory of <code>OpenDAL</code></li>
<li><code>endpoint</code>: Set the network address of redis server</li>
+<li><code>cluster_endpoints</code>: Set the network address of redis cluster server. This parameter is mutually exclusive with the <code>endponit</code> parameter.</li>
<li><code>username</code>: Set the username of Redis</li>
<li><code>password</code>: Set the password for authentication</li>
<li><code>db</code>: Set the DB of redis</li>
@@ -47,24 +48,32 @@ blocking</li>
</span><span class="kw">let </span>op: Operator = Operator::new(builder)<span class="question-mark">?</span>.finish();
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RedisBuilder" class="impl"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#88-147">source</a><a href="#impl-RedisBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Redis.html [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-RedisBuilder" class="impl"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#98-171">source</a><a href="#impl-RedisBuilder" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Redis.html [...]
<p>currently supported schemes:</p>
<ul>
<li>no scheme: will be seen as “tcp”</li>
<li>“tcp” or “redis”: unsecured redis connections</li>
<li>“unix” or “redis+unix”: unix socket connection</li>
</ul>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.username" class="method"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#105-110">source</a><h4 class="code-header">pub fn <a href="#method.username" class="fn">username</a>(&mut self, username: &<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.str.html">str</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/p [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.cluster_endpoints" class="method"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#119-124">source</a><h4 class="code-header">pub fn <a href="#method.cluster_endpoints" class="fn">cluster_endpoints</a>(&mut self, cluster_endpoints: &<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.str.html">str</a>) -> <a class="primitive" href="ht [...]
+This parameter is mutually exclusive with the endponit parameter.</p>
+<p>currently supported schemes:</p>
+<ul>
+<li>no scheme: will be seen as “tcp”</li>
+<li>“tcp” or “redis”: unsecured redis connections</li>
+<li>“unix” or “redis+unix”: unix socket connection</li>
+</ul>
+</div></details><details class="toggle method-toggle" open><summary><section id="method.username" class="method"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#129-134">source</a><h4 class="code-header">pub fn <a href="#method.username" class="fn">username</a>(&mut self, username: &<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.str.html">str</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/p [...]
<p>default: no username</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.password" class="method"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#115-120">source</a><h4 class="code-header">pub fn <a href="#method.password" class="fn">password</a>(&mut self, password: &<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.str.html">str</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/p [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.password" class="method"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#139-144">source</a><h4 class="code-header">pub fn <a href="#method.password" class="fn">password</a>(&mut self, password: &<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.str.html">str</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/p [...]
<p>default: no password</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.db" class="method"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#125-128">source</a><h4 class="code-header">pub fn <a href="#method.db" class="fn">db</a>(&mut self, db: <a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.i64.html">i64</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.reference.html">& [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.db" class="method"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#149-152">source</a><h4 class="code-header">pub fn <a href="#method.db" class="fn">db</a>(&mut self, db: <a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.i64.html">i64</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.reference.html">& [...]
<p>default: 0</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.default_ttl" class="method"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#133-136">source</a><h4 class="code-header">pub fn <a href="#method.default_ttl" class="fn">default_ttl</a>(&mut self, ttl: <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -> <a class="primitive" [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.default_ttl" class="method"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#157-160">source</a><h4 class="code-header">pub fn <a href="#method.default_ttl" class="fn">default_ttl</a>(&mut self, ttl: <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -> <a class="primitive" [...]
<p>If set, we will specify <code>EX</code> for write operations.</p>
-</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#141-146">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&mut self, root: &<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.str.html">str</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.referen [...]
+</div></details><details class="toggle method-toggle" open><summary><section id="method.root" class="method"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#165-170">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&mut self, root: &<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.str.html">str</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.referen [...]
<p>default: “/”</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Builder-for-RedisBuilder" class="impl"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#149-247">source</a><a href="#impl-Builder-for-RedisBuilder" class="anchor">§</a [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Builder-for-RedisBuilder" class="impl"><a class="srclink rightside" href="../../src/opendal/services/redis/backend.rs.html#173-250">source</a><a href="#impl-Builder-for-RedisBuilder" class="anchor">§</a [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a hr [...]
diff --git a/docs/rust/opendal/struct.Appender.html b/docs/rust/opendal/struct.Appender.html
index c56d871e4..4dbcf68e4 100644
--- a/docs/rust/opendal/struct.Appender.html
+++ b/docs/rust/opendal/struct.Appender.html
@@ -13,28 +13,28 @@ always be <code>unsized</code>.</p>
<h6 id="notes-2"><a href="#notes-2">Notes</a></h6>
<p>Close should only be called when the appender is not closed,
otherwise an unexpected error could be returned.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AsyncWrite-for-Appender" class="impl"><a class="srclink rightside" href="../src/opendal/types/appender.rs.html#121-186">source</a><a href="#impl-AsyncWrite-for-Appender" class="anchor">§</a><h3 class="c [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-AsyncWrite-for-Appender" class="impl"><a class="srclink rightside" href="../src/opendal/types/appender.rs.html#188-252">source</a><a href="#impl-AsyncWrite-for-Appender" class="anchor">§</a><h3 class="c [...]
self: <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.reference.html">&mut Self</a>>,
cx: &mut <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a><'_>,
buf: &[<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.u8.html">u8</a>]
-) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a><<a class="type" href="https://doc.rust-lang.org/1.71.1/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.usize.html">usize</a>>></h4></section></summary><div class='docblock'>Attempt to write bytes from <code>buf</code> into the object. <a [...]
-their destination. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.poll_close" class="method trait-impl"><a class="srclink rightside" href="../src/opendal/types/appender.rs.html#160-185">source</a><a href="#method.poll_close" class="anchor">§</a><h4 class="code-header">fn <a class="fn">poll_close</a>(self: <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a c [...]
+) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a><<a class="type" href="https://doc.rust-lang.org/1.71.1/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.usize.html">usize</a>>></h4></section></summary><div class='docblock'>Attempt to write bytes from <code>buf</code> into the object. <a [...]
+their destination. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.poll_shutdown" class="method trait-impl"><a class="srclink rightside" href="../src/opendal/types/appender.rs.html#226-251">source</a><a href="#method.poll_shutdown" class="anchor">§</a><h4 class="code-header">fn <a class="fn">poll_shutdown</a>(self: <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a [...]
+the I/O connection has completely shut down. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.poll_write_vectored" class="method trait-impl"><a href="#method.poll_write_vectored" class="anchor">§</a><h4 class="code-header">fn <a class="fn">poll_write_vectored</a>(
self: <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.reference.html">&mut Self</a>>,
cx: &mut <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a><'_>,
bufs: &[<a class="struct" href="https://doc.rust-lang.org/1.71.1/std/io/struct.IoSlice.html" title="struct std::io::IoSlice">IoSlice</a><'_>]
-) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a><<a class="enum" href="https://doc.rust-lang.org/1.71.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.usize.html">usize</a>, <a class="struct" href="https://doc.rust-lang.org/1.71.1/std/io/error/struct.Error.html" title="struct std::io::error::E [...]
-IO operations. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-AsyncWrite-for-Appender-1" class="impl"><a class="srclink rightside" href="../src/opendal/types/appender.rs.html#188-252">source</a><a href="#impl-AsyncWrite-for-Appender-1" class="anchor">§</a><h3 class="code-header">impl AsyncWrite for <a class="struct" href="struct.Appender.html" title="struct opendal::Appender">Appender</a></h3></section></summary [...]
+) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a><<a class="enum" href="https://doc.rust-lang.org/1.71.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.usize.html">usize</a>, <a class="struct" href="https://doc.rust-lang.org/1.71.1/std/io/error/struct.Error.html" title="struct std::io::error::E [...]
+implementation. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-AsyncWrite-for-Appender-1" class="impl"><a class="srclink rightside" href="../src/opendal/types/appender.rs.html#121-186">source</a><a href="#impl-AsyncWrite-for-Appender-1" class="anchor">§</a><h3 class="code-header">impl AsyncWrite for <a class="struct" href="struct.Appender.html" title="struct opendal::Appender">Appender</a></h3></section></summar [...]
self: <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.reference.html">&mut Self</a>>,
cx: &mut <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a><'_>,
buf: &[<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.u8.html">u8</a>]
-) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a><<a class="type" href="https://doc.rust-lang.org/1.71.1/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.usize.html">usize</a>>></h4></section></summary><div class='docblock'>Attempt to write bytes from <code>buf</code> into the object. <a [...]
-their destination. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.poll_shutdown" class="method trait-impl"><a class="srclink rightside" href="../src/opendal/types/appender.rs.html#226-251">source</a><a href="#method.poll_shutdown" class="anchor">§</a><h4 class="code-header">fn <a class="fn">poll_shutdown</a>(self: <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a [...]
-the I/O connection has completely shut down. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.poll_write_vectored-1" class="method trait-impl"><a href="#method.poll_write_vectored-1" class="anchor">§</a><h4 class="code-header">fn <a class="fn">poll_write_vectored</a>(
+) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a><<a class="type" href="https://doc.rust-lang.org/1.71.1/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.usize.html">usize</a>>></h4></section></summary><div class='docblock'>Attempt to write bytes from <code>buf</code> into the object. <a [...]
+their destination. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.poll_close" class="method trait-impl"><a class="srclink rightside" href="../src/opendal/types/appender.rs.html#160-185">source</a><a href="#method.poll_close" class="anchor">§</a><h4 class="code-header">fn <a class="fn">poll_close</a>(self: <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a c [...]
self: <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.reference.html">&mut Self</a>>,
cx: &mut <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a><'_>,
bufs: &[<a class="struct" href="https://doc.rust-lang.org/1.71.1/std/io/struct.IoSlice.html" title="struct std::io::IoSlice">IoSlice</a><'_>]
-) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a><<a class="enum" href="https://doc.rust-lang.org/1.71.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.usize.html">usize</a>, <a class="struct" href="https://doc.rust-lang.org/1.71.1/std/io/error/struct.Error.html" title="struct std::io::error::E [...]
-implementation. <a>Read more</a></div></details></div></details><section id="impl-Sync-for-Appender" class="impl"><a class="srclink rightside" href="../src/opendal/types/appender.rs.html#56">source</a><a href="#impl-Sync-for-Appender" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Appender.html" title="struct opendal::Appender [...]
+) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a><<a class="enum" href="https://doc.rust-lang.org/1.71.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.usize.html">usize</a>, <a class="struct" href="https://doc.rust-lang.org/1.71.1/std/io/error/struct.Error.html" title="struct std::io::error::E [...]
+IO operations. <a>Read more</a></div></details></div></details><section id="impl-Sync-for-Appender" class="impl"><a class="srclink rightside" href="../src/opendal/types/appender.rs.html#56">source</a><a href="#impl-Sync-for-Appender" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Appender.html" title="struct opendal::Appender" [...]
<p>Appender will only be accessed by <code>&mut Self</code></p>
</div></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Appender" class="impl"><a href="#impl-RefUnwindSafe-for-Appender" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwi [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
diff --git a/docs/rust/opendal/struct.BlockingReader.html b/docs/rust/opendal/struct.BlockingReader.html
index 8856ea55c..2f40fb222 100644
--- a/docs/rust/opendal/struct.BlockingReader.html
+++ b/docs/rust/opendal/struct.BlockingReader.html
@@ -1,6 +1,6 @@
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="BlockingReader is designed to read data from given path in an blocking manner."><title>BlockingReader in opendal - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" [...]
manner.</p>
-</div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingRead-for-BlockingReader" class="impl"><a class="srclink rightside" href="../src/opendal/types/reader.rs.html#201-216">source</a><a href="#impl-BlockingRead-for-BlockingReader" class="anchor">§</a><h3 class="code-head [...]
+</div></details><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-BlockingRead-for-BlockingReader" class="impl"><a class="srclink rightside" href="../src/opendal/types/reader.rs.html#201-216">source</a><a href="#impl-BlockingRead-for-BlockingReader" class="anchor">§</a><h3 class="code-head [...]
&mut self
) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a><[Self::<a class="associatedtype" href="https://doc.rust-lang.org/1.71.1/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::traits::iterator::Iterator::Item">Item</a>; <a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.array.html">N</a>], <a class="struct" href="https://doc.rust-lang.org/ [...]
Self: <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>iter_next_chunk</code>)</span></div></span><div class='docblock'>Advances the iterator and returns an array containing the next <code>N</code> values. <a href="https://doc.rust-lang.org/1 [...]
@@ -189,7 +189,7 @@ implementation. <a href="https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html
Self: <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Transforms this <code>Read</code> instance to an <a href="https://doc.rust-lang.org/1.71.1/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator"><code>Iterator</code></a> over its bytes. <a href="https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html# [...]
R: <a class="trait" href="https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html" title="trait std::io::Read">Read</a>,
Self: <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Creates an adapter which will chain this stream with another. <a href="https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html#method.chain">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.take" class="method trait-impl"><span class="rightside"> [...]
- Self: <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Creates an adapter which will read at most <code>limit</code> bytes from it. <a href="https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html#method.take">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Seek-for-BlockingReade [...]
+ Self: <a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h4></section></summary><div class='docblock'>Creates an adapter which will read at most <code>limit</code> bytes from it. <a href="https://doc.rust-lang.org/1.71.1/std/io/trait.Read.html#method.take">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Seek-for-BlockingReade [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a hr [...]
diff --git a/docs/rust/opendal/struct.Error.html b/docs/rust/opendal/struct.Error.html
index 001aba90a..c4e005f3b 100644
--- a/docs/rust/opendal/struct.Error.html
+++ b/docs/rust/opendal/struct.Error.html
@@ -17,7 +17,7 @@
<p>By setting persistent, we indicate the retry should be stopped.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.kind" class="method"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#335-337">source</a><h4 class="code-header">pub fn <a href="#method.kind" class="fn">kind</a>(&self) -> <a class="enum" href="enum.ErrorKind.html" title="enum opendal::ErrorKind">ErrorKind</a></h4></section></summary><div class="docblock"><p>Return error’s kind.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.is_temporary" class="method"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#340-342">source</a><h4 class="code-header">pub fn <a href="#method.is_temporary" class="fn">is_temporary</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if this error is temporary.</p>
-</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-Error" class="impl"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#215-249">source</a><a href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-header">impl <a [...]
+</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-Error" class="impl"><a class="srclink rightside" href="../src/opendal/types/error.rs.html#215-249">source</a><a href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-header">impl <a [...]
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a h [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="http [...]
T: ?<a class="trait" href="https://doc.rust-lang.org/1.71.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="srclink rightside" href="https://doc.rust-lang.org/1.71.1/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a hr [...]
diff --git a/docs/rust/opendal/struct.Reader.html b/docs/rust/opendal/struct.Reader.html
index de64bae01..db3dbeb76 100644
--- a/docs/rust/opendal/struct.Reader.html
+++ b/docs/rust/opendal/struct.Reader.html
@@ -33,7 +33,7 @@ IO operations. <a>Read more</a></div></details></div></details><details class="t
) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a><<a class="type" href="https://doc.rust-lang.org/1.71.1/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.unit.html">()</a>>></h4></section></summary><div class='docblock'>Attempts to read from the <code>AsyncRead</code> into <code>buf</cod [...]
self: <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.reference.html">&mut Self</a>>,
cx: &mut <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a><'_>
-) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a><<a class="type" href="https://doc.rust-lang.org/1.71.1/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.u64.html">u64</a>>></h4></section></summary><div class='docblock'>Waits for a seek operation to complete. <a>Read more</a></div></deta [...]
+) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a><<a class="type" href="https://doc.rust-lang.org/1.71.1/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.u64.html">u64</a>>></h4></section></summary><div class='docblock'>Waits for a seek operation to complete. <a>Read more</a></div></deta [...]
self: <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.reference.html">&mut Self</a>>,
cx: &mut <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a><'_>,
pos: <a class="enum" href="https://doc.rust-lang.org/1.71.1/std/io/enum.SeekFrom.html" title="enum std::io::SeekFrom">SeekFrom</a>
@@ -41,7 +41,7 @@ IO operations. <a>Read more</a></div></details></div></details><details class="t
&mut self,
cx: &mut <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a><'_>,
buf: &mut [<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.u8.html">u8</a>]
-) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a><<a class="type" href="type.Result.html" title="type opendal::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.usize.html">usize</a>>></h4></section></summary><div class='docblock'>Read bytes asynchronously.</div></details><details class="toggle method-toggle" open><summary><section id="method.pol [...]
+) -> <a class="enum" href="https://doc.rust-lang.org/1.71.1/core/task/poll/enum.Poll.html" title="enum core::task::poll::Poll">Poll</a><<a class="type" href="type.Result.html" title="type opendal::Result">Result</a><<a class="primitive" href="https://doc.rust-lang.org/1.71.1/std/primitive.usize.html">usize</a>>></h4></section></summary><div class='docblock'>Read bytes asynchronously.</div></details><details class="toggle method-toggle" open><summary><section id="method.pol [...]
&mut self,
cx: &mut <a class="struct" href="https://doc.rust-lang.org/1.71.1/core/task/wake/struct.Context.html" title="struct core::task::wake::Context">Context</a><'_>,
pos: <a class="enum" href="https://doc.rust-lang.org/1.71.1/std/io/enum.SeekFrom.html" title="enum std::io::SeekFrom">SeekFrom</a>
diff --git a/docs/rust/opendal/trait.Builder.html b/docs/rust/opendal/trait.Builder.html
index 63cdfd96b..a2de33a00 100644
--- a/docs/rust/opendal/trait.Builder.html
+++ b/docs/rust/opendal/trait.Builder.html
@@ -22,4 +22,4 @@ We also promise that every public API will provide detailed documentation.</p>
</div></details></div><h2 id="required-methods" class="small-section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.from_map" class="method"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#45">source</a><h4 class="code-header">fn <a href="#tymethod.from_map" class="fn">from_map</a>(map: <a class="struct" href="https://doc.rust-lang.org/1.71. [...]
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.build" class="method"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#48">source</a><h4 class="code-header">fn <a href="#tymethod.build" class="fn">build</a>(&mut self) -> <a class="type" href="type.Result.html" title="type opendal::Result">Result</a><Self::<a class="associatedtype" href="trait.Builder.html#associatedtype.Accessor" title="type opendal::Builder::Acce [...]
</div></details></div><h2 id="foreign-impls" class="small-section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-Builder-for-()" class="impl"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#52-62">source</a><a href="#impl-Builder-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Builder.html" title="trait opendal::Bu [...]
-</div><div class="impl-items"><section id="associatedconstant.SCHEME-1" class="associatedconstant trait-impl"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#53">source</a><a href="#associatedconstant.SCHEME-1" class="anchor">§</a><h4 class="code-header">const <a href="#associatedconstant.SCHEME" class="constant">SCHEME</a>: <a class="enum" href="enum.Scheme.html" title="enum opendal::Scheme">Scheme</a> = _</h4></section><section id="associatedtype.Accessor-1" cla [...]
\ No newline at end of file
+</div><div class="impl-items"><section id="associatedconstant.SCHEME-1" class="associatedconstant trait-impl"><a class="srclink rightside" href="../src/opendal/types/builder.rs.html#53">source</a><a href="#associatedconstant.SCHEME-1" class="anchor">§</a><h4 class="code-header">const <a href="#associatedconstant.SCHEME" class="constant">SCHEME</a>: <a class="enum" href="enum.Scheme.html" title="enum opendal::Scheme">Scheme</a> = _</h4></section><section id="associatedtype.Accessor-1" cla [...]
\ No newline at end of file
diff --git a/docs/rust/search-index.js b/docs/rust/search-index.js
index 9bdd49ed9..bf5b3ab82 100644
--- a/docs/rust/search-index.js
+++ b/docs/rust/search-index.js
@@ -1,5 +1,5 @@
var searchIndex = JSON.parse('{\
-"opendal":{"doc":"OpenDAL is the Open Data Access Layer to <strong>freely</strong> access …","t":"QNDNNDDDDINNDNNNNNNNNNNNNNNNDEDENNNNNNNNNNNNNNNNNDNNDENNNNNNNDDDNNNNNDNNGNNSENNNNNNNNNNNNDLLLMLMMMLLMMMLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLMLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLL [...]
+"opendal":{"doc":"OpenDAL is the Open Data Access Layer to <strong>freely</strong> access …","t":"QNDNNDDDDINNDNNNNNNNNNNNNNNNDEDENNNNNNNNNNNNNNNNNDNNDENNNNNNNDDDNNNNNDNNGNNSENNNNNNNNNNNNDLLLMLMMMLLMMMLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMLLMLLLLLLMLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLALLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLKLLLLLLLLL [...]
}');
if (typeof window !== 'undefined' && window.initSearch) {window.initSearch(searchIndex)};
if (typeof exports !== 'undefined') {exports.searchIndex = searchIndex};
diff --git a/docs/rust/src/opendal/services/redis/backend.rs.html b/docs/rust/src/opendal/services/redis/backend.rs.html
index e01c104a3..d54ae6c01 100644
--- a/docs/rust/src/opendal/services/redis/backend.rs.html
+++ b/docs/rust/src/opendal/services/redis/backend.rs.html
@@ -331,6 +331,115 @@
<a href="#331" id="331">331</a>
<a href="#332" id="332">332</a>
<a href="#333" id="333">333</a>
+<a href="#334" id="334">334</a>
+<a href="#335" id="335">335</a>
+<a href="#336" id="336">336</a>
+<a href="#337" id="337">337</a>
+<a href="#338" id="338">338</a>
+<a href="#339" id="339">339</a>
+<a href="#340" id="340">340</a>
+<a href="#341" id="341">341</a>
+<a href="#342" id="342">342</a>
+<a href="#343" id="343">343</a>
+<a href="#344" id="344">344</a>
+<a href="#345" id="345">345</a>
+<a href="#346" id="346">346</a>
+<a href="#347" id="347">347</a>
+<a href="#348" id="348">348</a>
+<a href="#349" id="349">349</a>
+<a href="#350" id="350">350</a>
+<a href="#351" id="351">351</a>
+<a href="#352" id="352">352</a>
+<a href="#353" id="353">353</a>
+<a href="#354" id="354">354</a>
+<a href="#355" id="355">355</a>
+<a href="#356" id="356">356</a>
+<a href="#357" id="357">357</a>
+<a href="#358" id="358">358</a>
+<a href="#359" id="359">359</a>
+<a href="#360" id="360">360</a>
+<a href="#361" id="361">361</a>
+<a href="#362" id="362">362</a>
+<a href="#363" id="363">363</a>
+<a href="#364" id="364">364</a>
+<a href="#365" id="365">365</a>
+<a href="#366" id="366">366</a>
+<a href="#367" id="367">367</a>
+<a href="#368" id="368">368</a>
+<a href="#369" id="369">369</a>
+<a href="#370" id="370">370</a>
+<a href="#371" id="371">371</a>
+<a href="#372" id="372">372</a>
+<a href="#373" id="373">373</a>
+<a href="#374" id="374">374</a>
+<a href="#375" id="375">375</a>
+<a href="#376" id="376">376</a>
+<a href="#377" id="377">377</a>
+<a href="#378" id="378">378</a>
+<a href="#379" id="379">379</a>
+<a href="#380" id="380">380</a>
+<a href="#381" id="381">381</a>
+<a href="#382" id="382">382</a>
+<a href="#383" id="383">383</a>
+<a href="#384" id="384">384</a>
+<a href="#385" id="385">385</a>
+<a href="#386" id="386">386</a>
+<a href="#387" id="387">387</a>
+<a href="#388" id="388">388</a>
+<a href="#389" id="389">389</a>
+<a href="#390" id="390">390</a>
+<a href="#391" id="391">391</a>
+<a href="#392" id="392">392</a>
+<a href="#393" id="393">393</a>
+<a href="#394" id="394">394</a>
+<a href="#395" id="395">395</a>
+<a href="#396" id="396">396</a>
+<a href="#397" id="397">397</a>
+<a href="#398" id="398">398</a>
+<a href="#399" id="399">399</a>
+<a href="#400" id="400">400</a>
+<a href="#401" id="401">401</a>
+<a href="#402" id="402">402</a>
+<a href="#403" id="403">403</a>
+<a href="#404" id="404">404</a>
+<a href="#405" id="405">405</a>
+<a href="#406" id="406">406</a>
+<a href="#407" id="407">407</a>
+<a href="#408" id="408">408</a>
+<a href="#409" id="409">409</a>
+<a href="#410" id="410">410</a>
+<a href="#411" id="411">411</a>
+<a href="#412" id="412">412</a>
+<a href="#413" id="413">413</a>
+<a href="#414" id="414">414</a>
+<a href="#415" id="415">415</a>
+<a href="#416" id="416">416</a>
+<a href="#417" id="417">417</a>
+<a href="#418" id="418">418</a>
+<a href="#419" id="419">419</a>
+<a href="#420" id="420">420</a>
+<a href="#421" id="421">421</a>
+<a href="#422" id="422">422</a>
+<a href="#423" id="423">423</a>
+<a href="#424" id="424">424</a>
+<a href="#425" id="425">425</a>
+<a href="#426" id="426">426</a>
+<a href="#427" id="427">427</a>
+<a href="#428" id="428">428</a>
+<a href="#429" id="429">429</a>
+<a href="#430" id="430">430</a>
+<a href="#431" id="431">431</a>
+<a href="#432" id="432">432</a>
+<a href="#433" id="433">433</a>
+<a href="#434" id="434">434</a>
+<a href="#435" id="435">435</a>
+<a href="#436" id="436">436</a>
+<a href="#437" id="437">437</a>
+<a href="#438" id="438">438</a>
+<a href="#439" id="439">439</a>
+<a href="#440" id="440">440</a>
+<a href="#441" id="441">441</a>
+<a href="#442" id="442">442</a>
</pre></div><pre class="rust"><code><span class="comment">// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
@@ -357,6 +466,9 @@
<span class="kw">use </span>async_trait::async_trait;
<span class="kw">use </span>http::Uri;
<span class="kw">use </span>redis::aio::ConnectionManager;
+<span class="kw">use </span>redis::cluster::ClusterClient;
+<span class="kw">use </span>redis::cluster::ClusterClientBuilder;
+<span class="kw">use </span>redis::cluster_async::ClusterConnection;
<span class="kw">use </span>redis::AsyncCommands;
<span class="kw">use </span>redis::Client;
<span class="kw">use </span>redis::ConnectionAddr;
@@ -380,6 +492,10 @@
///
/// default is "tcp://127.0.0.1:6379"
</span>endpoint: <span class="prelude-ty">Option</span><String>,
+ <span class="doccomment">/// network address of the Redis cluster service. Can be "tcp://127.0.0.1:6379,tcp://127.0.0.1:6380,tcp://127.0.0.1:6381", e.g.
+ ///
+ /// default is None
+ </span>cluster_endpoints: <span class="prelude-ty">Option</span><String>,
<span class="doccomment">/// the username to connect redis service.
///
/// default is None
@@ -408,6 +524,9 @@
<span class="kw">if let </span><span class="prelude-val">Some</span>(endpoint) = <span class="self">self</span>.endpoint.clone() {
ds.field(<span class="string">"endpoint"</span>, <span class="kw-2">&</span>endpoint);
}
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(cluster_endpoints) = <span class="self">self</span>.cluster_endpoints.clone() {
+ ds.field(<span class="string">"cluster_endpoints"</span>, <span class="kw-2">&</span>cluster_endpoints);
+ }
<span class="kw">if let </span><span class="prelude-val">Some</span>(username) = <span class="self">self</span>.username.clone() {
ds.field(<span class="string">"username"</span>, <span class="kw-2">&</span>username);
}
@@ -432,6 +551,20 @@
<span class="self">self
</span>}
+ <span class="doccomment">/// set the network address of redis cluster service.
+ /// This parameter is mutually exclusive with the endponit parameter.
+ ///
+ /// currently supported schemes:
+ /// - no scheme: will be seen as "tcp"
+ /// - "tcp" or "redis": unsecured redis connections
+ /// - "unix" or "redis+unix": unix socket connection
+ </span><span class="kw">pub fn </span>cluster_endpoints(<span class="kw-2">&mut </span><span class="self">self</span>, cluster_endpoints: <span class="kw-2">&</span>str) -> <span class="kw-2">&mut </span><span class="self">Self </span>{
+ <span class="kw">if </span>!cluster_endpoints.is_empty() {
+ <span class="self">self</span>.cluster_endpoints = <span class="prelude-val">Some</span>(cluster_endpoints.to_owned());
+ }
+ <span class="self">self
+ </span>}
+
<span class="doccomment">/// set the username for redis
///
/// default: no username
@@ -488,6 +621,8 @@
map.get(<span class="string">"root"</span>).map(|v| builder.root(v));
map.get(<span class="string">"endpoint"</span>).map(|v| builder.endpoint(v));
+ map.get(<span class="string">"cluster_endpoints"</span>)
+ .map(|v| builder.cluster_endpoints(v));
map.get(<span class="string">"username"</span>).map(|v| builder.username(v));
map.get(<span class="string">"password"</span>).map(|v| builder.password(v));
map.get(<span class="string">"db"</span>)
@@ -497,11 +632,67 @@
}
<span class="kw">fn </span>build(<span class="kw-2">&mut </span><span class="self">self</span>) -> <span class="prelude-ty">Result</span><<span class="self">Self</span>::Accessor> {
- <span class="kw">let </span>endpoint = <span class="self">self
- </span>.endpoint
- .clone()
- .unwrap_or_else(|| DEFAULT_REDIS_ENDPOINT.to_string());
+ <span class="kw">let </span>root = normalize_root(
+ <span class="self">self</span>.root
+ .clone()
+ .unwrap_or_else(|| <span class="string">"/"</span>.to_string())
+ .as_str(),
+ );
+
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(endpoints) = <span class="self">self</span>.cluster_endpoints.clone() {
+ <span class="kw">let </span><span class="kw-2">mut </span>cluster_endpoints: Vec<ConnectionInfo> = Vec::default();
+ <span class="kw">for </span>endpoint <span class="kw">in </span>endpoints.split(<span class="string">','</span>) {
+ cluster_endpoints.push(<span class="self">self</span>.get_connection_info(endpoint.to_string())<span class="question-mark">?</span>);
+ }
+ <span class="kw">let </span><span class="kw-2">mut </span>client_builder = ClusterClientBuilder::new(cluster_endpoints);
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(username) = <span class="kw-2">&</span><span class="self">self</span>.username {
+ client_builder = client_builder.username(username.clone());
+ }
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(password) = <span class="kw-2">&</span><span class="self">self</span>.password {
+ client_builder = client_builder.password(password.clone());
+ }
+ <span class="kw">let </span>client = client_builder.build()<span class="question-mark">?</span>;
+
+ <span class="kw">let </span>conn = OnceCell::new();
+
+ <span class="prelude-val">Ok</span>(RedisBackend::new(Adapter {
+ addr: endpoints,
+ client: <span class="prelude-val">None</span>,
+ cluster_client: <span class="prelude-val">Some</span>(client),
+ conn,
+ default_ttl: <span class="self">self</span>.default_ttl,
+ })
+ .with_root(<span class="kw-2">&</span>root))
+ } <span class="kw">else </span>{
+ <span class="kw">let </span>endpoint = <span class="self">self
+ </span>.endpoint
+ .clone()
+ .unwrap_or_else(|| DEFAULT_REDIS_ENDPOINT.to_string());
+
+ <span class="kw">let </span>client =
+ Client::open(<span class="self">self</span>.get_connection_info(endpoint.clone())<span class="question-mark">?</span>).map_err(|e| {
+ Error::new(ErrorKind::ConfigInvalid, <span class="string">"invalid or unsupported scheme"</span>)
+ .with_context(<span class="string">"service"</span>, Scheme::Redis)
+ .with_context(<span class="string">"endpoint"</span>, <span class="self">self</span>.endpoint.as_ref().unwrap())
+ .with_context(<span class="string">"db"</span>, <span class="self">self</span>.db.to_string())
+ .set_source(e)
+ })<span class="question-mark">?</span>;
+
+ <span class="kw">let </span>conn = OnceCell::new();
+ <span class="prelude-val">Ok</span>(RedisBackend::new(Adapter {
+ addr: endpoint,
+ client: <span class="prelude-val">Some</span>(client),
+ cluster_client: <span class="prelude-val">None</span>,
+ conn,
+ default_ttl: <span class="self">self</span>.default_ttl,
+ })
+ .with_root(<span class="kw-2">&</span>root))
+ }
+ }
+}
+<span class="kw">impl </span>RedisBuilder {
+ <span class="kw">fn </span>get_connection_info(<span class="kw-2">&</span><span class="self">self</span>, endpoint: String) -> <span class="prelude-ty">Result</span><ConnectionInfo> {
<span class="kw">let </span>ep_url = endpoint.parse::<Uri>().map_err(|e| {
Error::new(ErrorKind::ConfigInvalid, <span class="string">"endpoint is invalid"</span>)
.with_context(<span class="string">"service"</span>, Scheme::Redis)
@@ -549,43 +740,28 @@
password: <span class="self">self</span>.password.clone(),
};
- <span class="kw">let </span>con_info = ConnectionInfo {
+ <span class="prelude-val">Ok</span>(ConnectionInfo {
addr: con_addr,
redis: redis_info,
- };
-
- <span class="kw">let </span>client = Client::open(con_info).map_err(|e| {
- Error::new(ErrorKind::ConfigInvalid, <span class="string">"invalid or unsupported scheme"</span>)
- .with_context(<span class="string">"service"</span>, Scheme::Redis)
- .with_context(<span class="string">"endpoint"</span>, <span class="self">self</span>.endpoint.as_ref().unwrap())
- .with_context(<span class="string">"db"</span>, <span class="self">self</span>.db.to_string())
- .set_source(e)
- })<span class="question-mark">?</span>;
-
- <span class="kw">let </span>root = normalize_root(
- <span class="self">self</span>.root
- .clone()
- .unwrap_or_else(|| <span class="string">"/"</span>.to_string())
- .as_str(),
- );
-
- <span class="kw">let </span>conn = OnceCell::new();
- <span class="prelude-val">Ok</span>(RedisBackend::new(Adapter {
- client,
- conn,
- default_ttl: <span class="self">self</span>.default_ttl,
})
- .with_root(<span class="kw-2">&</span>root))
}
}
<span class="doccomment">/// Backend for redis services.
</span><span class="kw">pub type </span>RedisBackend = kv::Backend<Adapter>;
+<span class="attr">#[derive(Clone)]
+</span><span class="kw">enum </span>RedisConnection {
+ Normal(ConnectionManager),
+ Cluster(ClusterConnection),
+}
+
<span class="attr">#[derive(Clone)]
</span><span class="kw">pub struct </span>Adapter {
- client: Client,
- conn: OnceCell<ConnectionManager>,
+ addr: String,
+ client: <span class="prelude-ty">Option</span><Client>,
+ cluster_client: <span class="prelude-ty">Option</span><ClusterClient>,
+ conn: OnceCell<RedisConnection>,
default_ttl: <span class="prelude-ty">Option</span><Duration>,
}
@@ -595,19 +771,29 @@
<span class="kw">fn </span>fmt(<span class="kw-2">&</span><span class="self">self</span>, f: <span class="kw-2">&mut </span>Formatter<<span class="lifetime">'_</span>>) -> std::fmt::Result {
<span class="kw">let </span><span class="kw-2">mut </span>ds = f.debug_struct(<span class="string">"Adapter"</span>);
- <span class="kw">let </span>info = <span class="self">self</span>.client.get_connection_info();
- ds.field(<span class="string">"addr"</span>, <span class="kw-2">&</span>info.addr);
- ds.field(<span class="string">"db"</span>, <span class="kw-2">&</span>info.redis.db);
- ds.field(<span class="string">"user"</span>, <span class="kw-2">&</span>info.redis.username);
+ ds.field(<span class="string">"addr"</span>, <span class="kw-2">&</span><span class="self">self</span>.addr);
ds.finish()
}
}
<span class="kw">impl </span>Adapter {
- <span class="kw">async fn </span>conn(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Result</span><ConnectionManager> {
+ <span class="kw">async fn </span>conn(<span class="kw-2">&</span><span class="self">self</span>) -> <span class="prelude-ty">Result</span><RedisConnection> {
<span class="prelude-val">Ok</span>(<span class="self">self
</span>.conn
- .get_or_try_init(|| <span class="kw">async </span>{ ConnectionManager::new(<span class="self">self</span>.client.clone()).<span class="kw">await </span>})
+ .get_or_try_init(|| <span class="kw">async </span>{
+ <span class="kw">if let </span><span class="prelude-val">Some</span>(client) = <span class="self">self</span>.client.clone() {
+ ConnectionManager::new(client.clone())
+ .<span class="kw">await
+ </span>.map(RedisConnection::Normal)
+ } <span class="kw">else </span>{
+ <span class="self">self</span>.cluster_client
+ .clone()
+ .unwrap()
+ .get_async_connection()
+ .<span class="kw">await
+ </span>.map(RedisConnection::Cluster)
+ }
+ })
.<span class="kw">await</span><span class="question-mark">?
</span>.clone())
}
@@ -618,7 +804,7 @@
<span class="kw">fn </span>metadata(<span class="kw-2">&</span><span class="self">self</span>) -> kv::Metadata {
kv::Metadata::new(
Scheme::Redis,
- <span class="kw-2">&</span><span class="self">self</span>.client.get_connection_info().addr.to_string(),
+ <span class="self">self</span>.addr.as_str(),
Capability {
read: <span class="bool-val">true</span>,
write: <span class="bool-val">true</span>,
@@ -630,29 +816,61 @@
}
<span class="kw">async fn </span>get(<span class="kw-2">&</span><span class="self">self</span>, key: <span class="kw-2">&</span>str) -> <span class="prelude-ty">Result</span><<span class="prelude-ty">Option</span><Vec<u8>>> {
- <span class="kw">let </span><span class="kw-2">mut </span>conn = <span class="self">self</span>.conn().<span class="kw">await</span><span class="question-mark">?</span>;
- <span class="kw">let </span>bs: <span class="prelude-ty">Option</span><Vec<u8>> = conn.get(key).<span class="kw">await</span><span class="question-mark">?</span>;
- <span class="prelude-val">Ok</span>(bs)
+ <span class="kw">let </span>conn = <span class="self">self</span>.conn().<span class="kw">await</span><span class="question-mark">?</span>;
+ <span class="kw">match </span>conn {
+ RedisConnection::Normal(<span class="kw-2">mut </span>conn) => {
+ <span class="kw">let </span>bs = conn.get(key).<span class="kw">await</span><span class="question-mark">?</span>;
+ <span class="prelude-val">Ok</span>(bs)
+ }
+ RedisConnection::Cluster(<span class="kw-2">mut </span>conn) => {
+ <span class="kw">let </span>bs = conn.get(key).<span class="kw">await</span><span class="question-mark">?</span>;
+ <span class="prelude-val">Ok</span>(bs)
+ }
+ }
}
<span class="kw">async fn </span>set(<span class="kw-2">&</span><span class="self">self</span>, key: <span class="kw-2">&</span>str, value: <span class="kw-2">&</span>[u8]) -> <span class="prelude-ty">Result</span><()> {
- <span class="kw">let </span><span class="kw-2">mut </span>conn = <span class="self">self</span>.conn().<span class="kw">await</span><span class="question-mark">?</span>;
+ <span class="kw">let </span>conn = <span class="self">self</span>.conn().<span class="kw">await</span><span class="question-mark">?</span>;
<span class="kw">match </span><span class="self">self</span>.default_ttl {
- <span class="prelude-val">Some</span>(ttl) => conn.set_ex(key, value, ttl.as_secs() <span class="kw">as </span>usize).<span class="kw">await</span><span class="question-mark">?</span>,
- <span class="prelude-val">None </span>=> conn.set(key, value).<span class="kw">await</span><span class="question-mark">?</span>,
+ <span class="prelude-val">Some</span>(ttl) => <span class="kw">match </span>conn {
+ RedisConnection::Normal(<span class="kw-2">mut </span>conn) => {
+ conn.set_ex(key, value, ttl.as_secs() <span class="kw">as </span>usize).<span class="kw">await</span><span class="question-mark">?
+ </span>}
+ RedisConnection::Cluster(<span class="kw-2">mut </span>conn) => {
+ conn.set_ex(key, value, ttl.as_secs() <span class="kw">as </span>usize).<span class="kw">await</span><span class="question-mark">?
+ </span>}
+ },
+ <span class="prelude-val">None </span>=> <span class="kw">match </span>conn {
+ RedisConnection::Normal(<span class="kw-2">mut </span>conn) => conn.set(key, value).<span class="kw">await</span><span class="question-mark">?</span>,
+ RedisConnection::Cluster(<span class="kw-2">mut </span>conn) => conn.set(key, value).<span class="kw">await</span><span class="question-mark">?</span>,
+ },
}
<span class="prelude-val">Ok</span>(())
}
<span class="kw">async fn </span>delete(<span class="kw-2">&</span><span class="self">self</span>, key: <span class="kw-2">&</span>str) -> <span class="prelude-ty">Result</span><()> {
- <span class="kw">let </span><span class="kw-2">mut </span>conn = <span class="self">self</span>.conn().<span class="kw">await</span><span class="question-mark">?</span>;
- <span class="kw">let _</span>: () = conn.del(key).<span class="kw">await</span><span class="question-mark">?</span>;
+ <span class="kw">let </span>conn = <span class="self">self</span>.conn().<span class="kw">await</span><span class="question-mark">?</span>;
+ <span class="kw">match </span>conn {
+ RedisConnection::Normal(<span class="kw-2">mut </span>conn) => {
+ <span class="kw">let _</span>: () = conn.del(key).<span class="kw">await</span><span class="question-mark">?</span>;
+ }
+ RedisConnection::Cluster(<span class="kw-2">mut </span>conn) => {
+ <span class="kw">let _</span>: () = conn.del(key).<span class="kw">await</span><span class="question-mark">?</span>;
+ }
+ }
<span class="prelude-val">Ok</span>(())
}
<span class="kw">async fn </span>append(<span class="kw-2">&</span><span class="self">self</span>, key: <span class="kw-2">&</span>str, value: <span class="kw-2">&</span>[u8]) -> <span class="prelude-ty">Result</span><()> {
- <span class="kw">let </span><span class="kw-2">mut </span>conn = <span class="self">self</span>.conn().<span class="kw">await</span><span class="question-mark">?</span>;
- conn.append(key, value).<span class="kw">await</span><span class="question-mark">?</span>;
+ <span class="kw">let </span>conn = <span class="self">self</span>.conn().<span class="kw">await</span><span class="question-mark">?</span>;
+ <span class="kw">match </span>conn {
+ RedisConnection::Normal(<span class="kw-2">mut </span>conn) => {
+ conn.append(key, value).<span class="kw">await</span><span class="question-mark">?</span>;
+ }
+ RedisConnection::Cluster(<span class="kw-2">mut </span>conn) => {
+ conn.append(key, value).<span class="kw">await</span><span class="question-mark">?</span>;
+ }
+ }
<span class="prelude-val">Ok</span>(())
}
}
diff --git a/docs/services/azblob/index.html b/docs/services/azblob/index.html
index d3204adf2..c7d9a77ed 100644
--- a/docs/services/azblob/index.html
+++ b/docs/services/azblob/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Azblob | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/azblob"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/azdfs/index.html b/docs/services/azdfs/index.html
index 2ff417e02..a8903717f 100644
--- a/docs/services/azdfs/index.html
+++ b/docs/services/azdfs/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Azdfs | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/azdfs"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta d [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/cos/index.html b/docs/services/cos/index.html
index 71e440fa7..342901d5c 100644
--- a/docs/services/cos/index.html
+++ b/docs/services/cos/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">COS | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/cos"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data- [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/dashmap/index.html b/docs/services/dashmap/index.html
index 4268e07e2..5bb777916 100644
--- a/docs/services/dashmap/index.html
+++ b/docs/services/dashmap/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">DashMap | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/dashmap"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><me [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/fs/index.html b/docs/services/fs/index.html
index afd748fdb..62c6e9d78 100644
--- a/docs/services/fs/index.html
+++ b/docs/services/fs/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Fs | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/fs"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/ftp/index.html b/docs/services/ftp/index.html
index 6ccfa94dc..b464a56fc 100644
--- a/docs/services/ftp/index.html
+++ b/docs/services/ftp/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">FTP | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/ftp"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data- [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/hdfs/index.html b/docs/services/hdfs/index.html
index 70108221a..6371578a6 100644
--- a/docs/services/hdfs/index.html
+++ b/docs/services/hdfs/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">HDFS | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/hdfs"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta dat [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/ipfs/index.html b/docs/services/ipfs/index.html
index bf402dbf0..69c6b4aa2 100644
--- a/docs/services/ipfs/index.html
+++ b/docs/services/ipfs/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">IPFS | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/ipfs"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta dat [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/ipmfs/index.html b/docs/services/ipmfs/index.html
index ea15261ee..56dc25cf9 100644
--- a/docs/services/ipmfs/index.html
+++ b/docs/services/ipmfs/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">IPMFS | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/ipmfs"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta d [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/memory/index.html b/docs/services/memory/index.html
index 4f8ed5d81..c17296ceb 100644
--- a/docs/services/memory/index.html
+++ b/docs/services/memory/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Memory | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/memory"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/oss/index.html b/docs/services/oss/index.html
index 3e2f3b2e2..aff955c0c 100644
--- a/docs/services/oss/index.html
+++ b/docs/services/oss/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">OSS | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/oss"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data- [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/redis/index.html b/docs/services/redis/index.html
index 060fd5fe6..551400a46 100644
--- a/docs/services/redis/index.html
+++ b/docs/services/redis/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Redis | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/redis"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta d [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/rocksdb/index.html b/docs/services/rocksdb/index.html
index af2570032..314f0578b 100644
--- a/docs/services/rocksdb/index.html
+++ b/docs/services/rocksdb/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">RocksDB | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/rocksdb"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><me [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
@@ -13,8 +13,8 @@
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
issues. It is advisable to follow the steps provided in the <a href="https://github.com/facebook/rocksdb/blob/main/INSTALL.md" target="_blank" rel="noopener noreferrer"><code>INSTALL</code></a>
file to build rocksdb, rather than relying on system libraries that
-may be outdated and incompatible.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="configuration">Configuration<a href="#configuration" class="hash-link" aria-label="Direct link to Configuration" title="Direct link to Configuration"></a></h2><ul><li><code>root</code>: Set the working directory of <code>OpenDAL</code></li><li><code>datadir</code>: Set the path to the rocksdb data directory</li></ul><p>You can refer to <!-- -->[<code>RocksdbBuilder</code>]<!-- -->'s docs for mor [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+may be outdated and incompatible.</p><h2 class="anchor anchorWithStickyNavbar_LWe7" id="configuration">Configuration<a href="#configuration" class="hash-link" aria-label="Direct link to Configuration" title="Direct link to Configuration"></a></h2><ul><li><code>root</code>: Set the working directory of <code>OpenDAL</code></li><li><code>datadir</code>: Set the path to the rocksdb data directory</li></ul><p>You can refer to <!-- -->[<code>RocksdbBuilder</code>]<!-- -->'s docs for mor [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/s3/index.html b/docs/services/s3/index.html
index 310e93075..e0f402a31 100644
--- a/docs/services/s3/index.html
+++ b/docs/services/s3/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">S3 | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/s3"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/sftp/index.html b/docs/services/sftp/index.html
index 928a01c4d..ceb19db81 100644
--- a/docs/services/sftp/index.html
+++ b/docs/services/sftp/index.html
@@ -5,14 +5,14 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">SFTP | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/sftp"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta dat [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-lots of files, you should pay attention to close the file after using it.</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="capabilities">Capabilities<a href="#capabilities" class="hash-link" aria-label="Direct link to Capabilities" title="Direct link to Capabilities"></a></h2><p>This service can be used to:</p><ul class="contains-task-list containsTaskList_mC6p"><li class="task-list-item"><input type="checkbox" checked="" disabled=""> <!-- -->stat</li><li class="task-li [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+lots of files, you should pay attention to close the file after using it.</p></div></div><h2 class="anchor anchorWithStickyNavbar_LWe7" id="capabilities">Capabilities<a href="#capabilities" class="hash-link" aria-label="Direct link to Capabilities" title="Direct link to Capabilities"></a></h2><p>This service can be used to:</p><ul class="contains-task-list containsTaskList_mC6p"><li class="task-list-item"><input type="checkbox" checked="" disabled=""> <!-- -->stat</li><li class="task-li [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/sled/index.html b/docs/services/sled/index.html
index 321932f20..3626388ef 100644
--- a/docs/services/sled/index.html
+++ b/docs/services/sled/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Sled | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/sled"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta dat [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/services/webhdfs/index.html b/docs/services/webhdfs/index.html
index 38dcae05e..a4c6a14c2 100644
--- a/docs/services/webhdfs/index.html
+++ b/docs/services/webhdfs/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">WebHDFS | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/services/webhdfs"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><me [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/docs/vision/index.html b/docs/vision/index.html
index a3408fdda..929bb0de3 100644
--- a/docs/vision/index.html
+++ b/docs/vision/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Vision | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/vision"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh= [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/download/index.html b/download/index.html
index 61c1506e4..55306db2a 100644
--- a/download/index.html
+++ b/download/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Download | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/download"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="ro [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file
diff --git a/index.html b/index.html
index b0b2fe60e..b61940188 100644
--- a/index.html
+++ b/index.html
@@ -5,13 +5,13 @@
<meta name="generator" content="Docusaurus v2.4.1">
<title data-rh="true">Apache OpenDAL</title><meta data-rh="true" property="og:title" content="Apache OpenDAL"><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docse [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache OpenDAL Atom Feed"><link rel="stylesheet" href="/assets/css/styles.51c7cd0e.css">
-<link rel="preload" href="/assets/js/runtime~main.5ffeff9f.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.a724edce.js" as="script">
<link rel="preload" href="/assets/js/main.33d8db5d.js" as="script">
</head>
<body class="navigation-with-keyboard">
<script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}return t}()||function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
<div id="__docusaurus-base-url-issue-banner-container"></div><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria [...]
-<script src="/assets/js/runtime~main.5ffeff9f.js"></script>
+<script src="/assets/js/runtime~main.a724edce.js"></script>
<script src="/assets/js/main.33d8db5d.js"></script>
</body>
</html>
\ No newline at end of file