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

[incubator-opendal] branch gh-pages updated: deploy: 743316981aedf6596083c2062805fcb78b3087d8

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 adfaad25 deploy: 743316981aedf6596083c2062805fcb78b3087d8
adfaad25 is described below

commit adfaad25abf357998c0f4608d203eedaf0ba7552
Author: Xuanwo <Xu...@users.noreply.github.com>
AuthorDate: Thu Mar 16 06:09:08 2023 +0000

    deploy: 743316981aedf6596083c2062805fcb78b3087d8
---
 404.html                                           | 10 +++---
 .../{1db64337.073e1361.js => 1db64337.7592b9c3.js} |  2 +-
 assets/js/{main.4aa84896.js => main.8f54de99.js}   |  4 +--
 ...js.LICENSE.txt => main.8f54de99.js.LICENSE.txt} |  0
 ...e~main.ace2674a.js => runtime~main.3edb22d2.js} |  2 +-
 docs/overview/index.html                           | 10 +++---
 docs/rust/opendal/raw/enum.AccessorCapability.html |  6 ++--
 docs/rust/opendal/raw/enum.AccessorHint.html       |  6 ++--
 docs/rust/opendal/raw/struct.AccessorInfo.html     | 24 +++++++-------
 docs/rust/opendal/raw/trait.Accessor.html          |  6 ++--
 docs/rust/opendal/raw/type.FusedAccessor.html      |  2 +-
 docs/rust/opendal/struct.BlockingOperator.html     | 34 +++++++++----------
 docs/rust/src/opendal/raw/accessor.rs.html         | 38 ++++++++++++++++++++++
 docs/rust/src/opendal/services/oss/backend.rs.html |  2 ++
 docs/rust/src/opendal/services/s3/backend.rs.html  |  2 ++
 .../types/operator/blocking_operator.rs.html       | 14 +++++---
 index.html                                         | 10 +++---
 17 files changed, 109 insertions(+), 63 deletions(-)

diff --git a/404.html b/404.html
index 59b13ae0..95b6958c 100644
--- a/404.html
+++ b/404.html
@@ -4,13 +4,13 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v2.3.1">
 <title data-rh="true">Page Not Found | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/404.html"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh [...]
-<link rel="preload" href="/assets/js/runtime~main.ace2674a.js" as="script">
-<link rel="preload" href="/assets/js/main.4aa84896.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3edb22d2.js" as="script">
+<link rel="preload" href="/assets/js/main.8f54de99.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.ace2674a.js"></script>
-<script src="/assets/js/main.4aa84896.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
+<script src="/assets/js/runtime~main.3edb22d2.js"></script>
+<script src="/assets/js/main.8f54de99.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/assets/js/1db64337.073e1361.js b/assets/js/1db64337.7592b9c3.js
similarity index 96%
rename from assets/js/1db64337.073e1361.js
rename to assets/js/1db64337.7592b9c3.js
index 0966adff..d1811764 100644
--- a/assets/js/1db64337.073e1361.js
+++ b/assets/js/1db64337.7592b9c3.js
@@ -1 +1 @@
-"use strict";(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[372],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>v});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(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([[372],{3905:(e,t,r)=>{r.d(t,{Zo:()=>s,kt:()=>v});var n=r(7294);function o(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(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/main.4aa84896.js b/assets/js/main.8f54de99.js
similarity index 98%
rename from assets/js/main.4aa84896.js
rename to assets/js/main.8f54de99.js
index 706d9df2..a701e28a 100644
--- a/assets/js/main.4aa84896.js
+++ b/assets/js/main.8f54de99.js
@@ -1,2 +1,2 @@
-/*! For license information please see main.4aa84896.js.LICENSE.txt */
-(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={17896441:[()=>Promise.all([n.e(532),n.e(918)]).then(n.bind(n,3771)),"@theme/DocItem",3771],"1be78505":[()=>Promise.all([n.e(532),n.e(514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1db64337":[()=>n.e(372).then(n.bind(n,6777)),"@site/docs/overview.md",6777],"3806ecb0":[()=>n.e(661).then(n.t.bind(n [...]
\ No newline at end of file
+/*! For license information please see main.8f54de99.js.LICENSE.txt */
+(self.webpackChunkopendal_website=self.webpackChunkopendal_website||[]).push([[179],{723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={17896441:[()=>Promise.all([n.e(532),n.e(918)]).then(n.bind(n,3771)),"@theme/DocItem",3771],"1be78505":[()=>Promise.all([n.e(532),n.e(514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1db64337":[()=>n.e(372).then(n.bind(n,6777)),"@site/docs/overview.md",6777],"3806ecb0":[()=>n.e(661).then(n.t.bind(n [...]
\ No newline at end of file
diff --git a/assets/js/main.4aa84896.js.LICENSE.txt b/assets/js/main.8f54de99.js.LICENSE.txt
similarity index 100%
rename from assets/js/main.4aa84896.js.LICENSE.txt
rename to assets/js/main.8f54de99.js.LICENSE.txt
diff --git a/assets/js/runtime~main.ace2674a.js b/assets/js/runtime~main.3edb22d2.js
similarity index 96%
rename from assets/js/runtime~main.ace2674a.js
rename to assets/js/runtime~main.3edb22d2.js
index f2f0806c..fadea983 100644
--- a/assets/js/runtime~main.ace2674a.js
+++ b/assets/js/runtime~main.3edb22d2.js
@@ -1 +1 @@
-(()=>{"use strict";var e,t,r,o,n,a={},i={};function f(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return a[e].call(r.exports,r,r.exports,f),r.exports}f.m=a,e=[],f.O=(t,r,o,n)=>{if(!r){var a=1/0;for(d=0;d<e.length;d++){r=e[d][0],o=e[d][1],n=e[d][2];for(var i=!0,u=0;u<r.length;u++)(!1&n||a>=n)&&Object.keys(f.O).every((e=>f.O[e](r[u])))?r.splice(u--,1):(i=!1,n<a&&(a=n));if(i){e.splice(d--,1);var l=o();void 0!==l&&(t=l)}}return t}n=n||0;for(var d=e.length;d>0&&e[d-1] [...]
\ No newline at end of file
+(()=>{"use strict";var e,t,r,o,n,a={},i={};function f(e){var t=i[e];if(void 0!==t)return t.exports;var r=i[e]={exports:{}};return a[e].call(r.exports,r,r.exports,f),r.exports}f.m=a,e=[],f.O=(t,r,o,n)=>{if(!r){var a=1/0;for(d=0;d<e.length;d++){r=e[d][0],o=e[d][1],n=e[d][2];for(var i=!0,u=0;u<r.length;u++)(!1&n||a>=n)&&Object.keys(f.O).every((e=>f.O[e](r[u])))?r.splice(u--,1):(i=!1,n<a&&(a=n));if(i){e.splice(d--,1);var l=o();void 0!==l&&(t=l)}}return t}n=n||0;for(var d=e.length;d>0&&e[d-1] [...]
\ No newline at end of file
diff --git a/docs/overview/index.html b/docs/overview/index.html
index 6ee8b41c..4f2f2473 100644
--- a/docs/overview/index.html
+++ b/docs/overview/index.html
@@ -4,13 +4,13 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v2.3.1">
 <title data-rh="true">Overview | Apache OpenDAL</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/docs/overview"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docusaurus_version" content="current"><meta data [...]
-<link rel="preload" href="/assets/js/runtime~main.ace2674a.js" as="script">
-<link rel="preload" href="/assets/js/main.4aa84896.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3edb22d2.js" as="script">
+<link rel="preload" href="/assets/js/main.8f54de99.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
-<script src="/assets/js/runtime~main.ace2674a.js"></script>
-<script src="/assets/js/main.4aa84896.js"></script>
+<div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="roun [...]
+<script src="/assets/js/runtime~main.3edb22d2.js"></script>
+<script src="/assets/js/main.8f54de99.js"></script>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/enum.AccessorCapability.html b/docs/rust/opendal/raw/enum.AccessorCapability.html
index cff78229..b01eabc8 100644
--- a/docs/rust/opendal/raw/enum.AccessorCapability.html
+++ b/docs/rust/opendal/raw/enum.AccessorCapability.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="AccessorCapability describes accessor’s advanced capability."><meta name="keywords" content="rust, rustlang, rust-lang, AccessorCapability"><title>AccessorCapability in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceS [...]
+<!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="AccessorCapability describes accessor’s advanced capability."><meta name="keywords" content="rust, rustlang, rust-lang, AccessorCapability"><title>AccessorCapability in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceS [...]
     Read,
     Write,
     List,
@@ -14,9 +14,9 @@
 </div><section id="variant.Presign" class="variant"><a href="#variant.Presign" class="anchor">§</a><h3 class="code-header">Presign</h3></section><div class="docblock"><p>Add this capability if service supports <code>presign</code></p>
 </div><section id="variant.Blocking" class="variant"><a href="#variant.Blocking" class="anchor">§</a><h3 class="code-header">Blocking</h3></section><div class="docblock"><p>Add this capability if service supports <code>blocking</code></p>
 </div><section id="variant.Batch" class="variant"><a href="#variant.Batch" class="anchor">§</a><h3 class="code-header">Batch</h3></section><div class="docblock"><p>Add this capability if service supports <code>batch</code></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="rustdoc-toggle implementors-toggle" open><summary><section id="impl-BitAnd%3CR%3E-for-AccessorCapability" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#505-523">source</a><a href="#impl-BitAnd%3CR%3E-for-AccessorCapability" class="anch [...]
+</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="rustdoc-toggle implementors-toggle" open><summary><section id="impl-BitAnd%3CR%3E-for-AccessorCapability" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#524-542">source</a><a href="#impl-BitAnd%3CR%3E-for-AccessorCapability" class="anch [...]
 by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Rem%3CR%3E-for-AccessorCapability" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#505-523">source</a><a href="#impl-Rem%3CR%3E-for-AccessorCapability" class="anc [...]
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Rem%3CR%3E-for-AccessorCapability" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#524-542">source</a><a href="#impl-Rem%3CR%3E-for-AccessorCapability" class="anc [...]
 </div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Instrument-for-AccessorCapability" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-AccessorCapability" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn  [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AccessorCapability" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AccessorCapability" clas [...]
diff --git a/docs/rust/opendal/raw/enum.AccessorHint.html b/docs/rust/opendal/raw/enum.AccessorHint.html
index 0e84f5d2..5403f8ac 100644
--- a/docs/rust/opendal/raw/enum.AccessorHint.html
+++ b/docs/rust/opendal/raw/enum.AccessorHint.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="AccessorHint describes accessor’s hint."><meta name="keywords" content="rust, rustlang, rust-lang, AccessorHint"><title>AccessorHint in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.tt [...]
+<!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="AccessorHint describes accessor’s hint."><meta name="keywords" content="rust, rustlang, rust-lang, AccessorHint"><title>AccessorHint in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-1f7d512b176f0f72.tt [...]
     ReadSeekable,
     ReadStreamable,
 }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>AccessorHint describes accessor’s hint.</p>
@@ -8,9 +8,9 @@
 <p>We can reuse the same reader instead of always creating new one.</p>
 </div><section id="variant.ReadStreamable" class="variant"><a href="#variant.ReadStreamable" class="anchor">§</a><h3 class="code-header">ReadStreamable</h3></section><div class="docblock"><p>Read streamable means the underlying read is streamable.</p>
 <p>It’s better to use stream to reading data.</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="rustdoc-toggle implementors-toggle" open><summary><section id="impl-BitAnd%3CR%3E-for-AccessorHint" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#525-541">source</a><a href="#impl-BitAnd%3CR%3E-for-AccessorHint" class="anchor">§</a><h3 [...]
+</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="rustdoc-toggle implementors-toggle" open><summary><section id="impl-BitAnd%3CR%3E-for-AccessorHint" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#544-560">source</a><a href="#impl-BitAnd%3CR%3E-for-AccessorHint" class="anchor">§</a><h3 [...]
 by <code>==</code>. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ne" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.67.1/src/core/cmp.rs.html#229">source</a></span><a href="#method.ne" class="anchor"> [...]
-sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Rem%3CR%3E-for-AccessorHint" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#525-541">source</a><a href="#impl-Rem%3CR%3E-for-AccessorHint" class="anchor">§</a><h [...]
+sufficient, and should not be overridden without very good reason. <a href="https://doc.rust-lang.org/1.67.1/core/cmp/trait.PartialEq.html#method.ne">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Rem%3CR%3E-for-AccessorHint" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#544-560">source</a><a href="#impl-Rem%3CR%3E-for-AccessorHint" class="anchor">§</a><h [...]
 </div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Instrument-for-AccessorHint" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-AccessorHint" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait trac [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn  [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AccessorHint" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AccessorHint" class="anchor">§ [...]
diff --git a/docs/rust/opendal/raw/struct.AccessorInfo.html b/docs/rust/opendal/raw/struct.AccessorInfo.html
index aaeb7537..46437a26 100644
--- a/docs/rust/opendal/raw/struct.AccessorInfo.html
+++ b/docs/rust/opendal/raw/struct.AccessorInfo.html
@@ -1,21 +1,21 @@
-<!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="Metadata for accessor, users can use this metadata to get information of underlying backend."><meta name="keywords" content="rust, rustlang, rust-lang, AccessorInfo"><title>AccessorInfo in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../ [...]
-</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#438-503">source</a><a href="#impl-AccessorInfo" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_scheme" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#445-448">source</a><h4 class="code-header">pub fn <a href="#method.set_scheme" class="fn">set_scheme</a>(&amp;mut self, scheme: <a class="enum" href="../enum.Scheme.html" title="enum opendal::Scheme">Scheme</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/p [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#451-453">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Root of backend, will be in forma [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#458-461">source</a><h4 class="code-header">pub fn <a href="#method.set_root" class="fn">set_root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.1 [...]
+<!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="Metadata for accessor, users can use this metadata to get information of underlying backend."><meta name="keywords" content="rust, rustlang, rust-lang, AccessorInfo"><title>AccessorInfo in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../ [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#442-522">source</a><a href="#impl-AccessorInfo" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_scheme" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#449-452">source</a><h4 class="code-header">pub fn <a href="#method.set_scheme" class="fn">set_scheme</a>(&amp;mut self, scheme: <a class="enum" href="../enum.Scheme.html" title="enum opendal::Scheme">Scheme</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/p [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#455-457">source</a><h4 class="code-header">pub fn <a href="#method.root" class="fn">root</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Root of backend, will be in forma [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_root" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#462-465">source</a><h4 class="code-header">pub fn <a href="#method.set_root" class="fn">set_root</a>(&amp;mut self, root: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.1 [...]
 <p>Note: input root must be normalized.</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.name" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#469-471">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Name of backend, could be empty i [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.name" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#473-475">source</a><h4 class="code-header">pub fn <a href="#method.name" class="fn">name</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a></h4></section></summary><div class="docblock"><p>Name of backend, could be empty i [...]
 <p>For example:</p>
 <ul>
 <li>name for <code>s3</code> =&gt; bucket name</li>
 <li>name for <code>azblob</code> =&gt; container name</li>
 </ul>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_name" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#474-477">source</a><h4 class="code-header">pub fn <a href="#method.set_name" class="fn">set_name</a>(&amp;mut self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.1 [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.capabilities" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#480-482">source</a><h4 class="code-header">pub fn <a href="#method.capabilities" class="fn">capabilities</a>(&amp;self) -&gt; FlagSet&lt;<a class="enum" href="enum.AccessorCapability.html" title="enum opendal::raw::AccessorCapability">AccessorCapability</a>&gt;</h4></section></sum [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_capabilities" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#485-491">source</a><h4 class="code-header">pub fn <a href="#method.set_capabilities" class="fn">set_capabilities</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;capabilities: impl <a class="trait" href="https://doc.rust-lang.org/1.67.1/core/convert/tr [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hints" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#494-496">source</a><h4 class="code-header">pub fn <a href="#method.hints" class="fn">hints</a>(&amp;self) -&gt; FlagSet&lt;<a class="enum" href="enum.AccessorHint.html" title="enum opendal::raw::AccessorHint">AccessorHint</a>&gt;</h4></section></summary><div class="docblock"><p>Get backe [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_hints" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#499-502">source</a><h4 class="code-header">pub fn <a href="#method.set_hints" class="fn">set_hints</a>(&amp;mut self, hints: impl <a class="trait" href="https://doc.rust-lang.org/1.67.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;FlagSet&lt;<a class="e [...]
-</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="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#429">source</a><a href="#impl-Clone-for-AccessorInfo" class="anchor">§< [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_name" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#478-481">source</a><h4 class="code-header">pub fn <a href="#method.set_name" class="fn">set_name</a>(&amp;mut self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.67.1 [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.capabilities" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#499-501">source</a><h4 class="code-header">pub fn <a href="#method.capabilities" class="fn">capabilities</a>(&amp;self) -&gt; FlagSet&lt;<a class="enum" href="enum.AccessorCapability.html" title="enum opendal::raw::AccessorCapability">AccessorCapability</a>&gt;</h4></section></sum [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_capabilities" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#504-510">source</a><h4 class="code-header">pub fn <a href="#method.set_capabilities" class="fn">set_capabilities</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;capabilities: impl <a class="trait" href="https://doc.rust-lang.org/1.67.1/core/convert/tr [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.hints" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#513-515">source</a><h4 class="code-header">pub fn <a href="#method.hints" class="fn">hints</a>(&amp;self) -&gt; FlagSet&lt;<a class="enum" href="enum.AccessorHint.html" title="enum opendal::raw::AccessorHint">AccessorHint</a>&gt;</h4></section></summary><div class="docblock"><p>Get backe [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_hints" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#518-521">source</a><h4 class="code-header">pub fn <a href="#method.set_hints" class="fn">set_hints</a>(&amp;mut self, hints: impl <a class="trait" href="https://doc.rust-lang.org/1.67.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;FlagSet&lt;<a class="e [...]
+</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="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#430">source</a><a href="#impl-Clone-for-AccessorInfo" class="anchor">§< [...]
 </div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Instrument-for-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#276">source</a><a href="#impl-Instrument-for-AccessorInfo" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html" title="trait trac [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.instrument">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://docs.rs/tracing/0.1.37/src/tracing/instrument.rs.html#121">source</a><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn  [...]
 <code>Instrumented</code> wrapper. <a href="https://docs.rs/tracing/0.1.37/tracing/instrument/trait.Instrument.html#method.in_current_span">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-AccessorInfo" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/1.67.1/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-AccessorInfo" class="anchor">§ [...]
diff --git a/docs/rust/opendal/raw/trait.Accessor.html b/docs/rust/opendal/raw/trait.Accessor.html
index 84c03089..0a6ad0cd 100644
--- a/docs/rust/opendal/raw/trait.Accessor.html
+++ b/docs/rust/opendal/raw/trait.Accessor.html
@@ -156,7 +156,7 @@ written size if operate successful.</p>
 </ul>
 </div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.blocking_scan" class="method has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#315-322">source</a><h4 class="code-header">fn <a href="#method.blocking_scan" class="fn">blocking_scan</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>,<br> [...]
 <p>Require <a href="enum.AccessorCapability.html#variant.Scan" title="AccessorCapability::Scan"><code>AccessorCapability::Scan</code></a> and <a href="enum.AccessorCapability.html#variant.Blocking" title="AccessorCapability::Blocking"><code>AccessorCapability::Blocking</code></a></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="rustdoc-toggle implementors-toggle"><summary><section id="impl-Accessor-for-()" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#327-344">source</a><a href="#impl-Accessor-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Accessor.htm [...]
-</div><div class="impl-items"><section id="associatedtype.Reader-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Reader-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a> = <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.unit.html">()</a></h4></section><section id="associatedtype.BlockingReader-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Bl [...]
+</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="rustdoc-toggle implementors-toggle"><summary><section id="impl-Accessor-for-()" class="impl has-srclink"><a class="srclink rightside" href="../../src/opendal/raw/accessor.rs.html#327-345">source</a><a href="#impl-Accessor-for-()" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Accessor.htm [...]
+</div><div class="impl-items"><section id="associatedtype.Reader-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Reader-1" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a> = <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.unit.html">()</a></h4></section><section id="associatedtype.BlockingReader-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Bl [...]
 <code>Accessor</code> for <code>Arc&lt;dyn Accessor&gt;</code>.</p>
-</div><div class="impl-items"><section id="associatedtype.Reader-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Reader-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a> = &lt;T as <a class="trait" href="trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a>&gt;::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Reader" title="type opendal::raw::Accessor::Reader [...]
\ No newline at end of file
+</div><div class="impl-items"><section id="associatedtype.Reader-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Reader-2" class="anchor">§</a><h4 class="code-header">type <a href="#associatedtype.Reader" class="associatedtype">Reader</a> = &lt;T as <a class="trait" href="trait.Accessor.html" title="trait opendal::raw::Accessor">Accessor</a>&gt;::<a class="associatedtype" href="trait.Accessor.html#associatedtype.Reader" title="type opendal::raw::Accessor::Reader [...]
\ No newline at end of file
diff --git a/docs/rust/opendal/raw/type.FusedAccessor.html b/docs/rust/opendal/raw/type.FusedAccessor.html
index b9fedd0a..04a4a28a 100644
--- a/docs/rust/opendal/raw/type.FusedAccessor.html
+++ b/docs/rust/opendal/raw/type.FusedAccessor.html
@@ -1,2 +1,2 @@
-<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="FusedAccessor is the type erased accessor with `Box&lt;dyn Reader&gt;`."><meta name="keywords" content="rust, rustlang, rust-lang, FusedAccessor"><title>FusedAccessor in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/Source [...]
+<!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="FusedAccessor is the type erased accessor with `Box&lt;dyn Reader&gt;`."><meta name="keywords" content="rust, rustlang, rust-lang, FusedAccessor"><title>FusedAccessor in opendal::raw - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/Source [...]
 </div></details></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="opendal" data-themes="" data-resource-suffix="" data-rustdoc-version="1.67.1 (d5a82bbd2 2023-02-07)" data-search-js="search-444266647c4dba98.js" data-settings-js="settings-bebeae96e00e4617.js" data-settings-css="settings-af96d9e2fc13e081.css" ></div></body></html>
\ No newline at end of file
diff --git a/docs/rust/opendal/struct.BlockingOperator.html b/docs/rust/opendal/struct.BlockingOperator.html
index 4073357b..f0bf47d5 100644
--- a/docs/rust/opendal/struct.BlockingOperator.html
+++ b/docs/rust/opendal/struct.BlockingOperator.html
@@ -20,15 +20,15 @@
 
     <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="rustdoc-toggle implementors-toggle" open><summary><section id="impl-BlockingOperator" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#63-107">source</a><a href="#impl-BlockingOperator" class="anchor">§</a><h3 class="code-header">impl <a cla [...]
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_limit" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#83-87">source</a><h4 class="code-header">pub fn <a href="#method.with_limit" class="fn">with_limit</a>(&amp;self, limit: <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="d [...]
+</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-BlockingOperator" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#63-109">source</a><a href="#impl-BlockingOperator" class="anchor">§</a><h3 class="code-header">impl <a cla [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_limit" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#85-89">source</a><h4 class="code-header">pub fn <a href="#method.with_limit" class="fn">with_limit</a>(&amp;self, limit: <a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="d [...]
 <p>Default: 1000</p>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.info" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#104-106">source</a><h4 class="code-header">pub fn <a href="#method.info" class="fn">info</a>(&amp;self) -&gt; <a class="struct" href="struct.OperatorInfo.html" title="struct opendal::OperatorInfo">OperatorInfo</a></h4></section></summary><div class="docblock"><p>Get infor [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.info" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#106-108">source</a><h4 class="code-header">pub fn <a href="#method.info" class="fn">info</a>(&amp;self) -&gt; <a class="struct" href="struct.OperatorInfo.html" title="struct opendal::OperatorInfo">OperatorInfo</a></h4></section></summary><div class="docblock"><p>Get infor [...]
 <h5 id="examples-1"><a href="#examples-1">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>opendal::BlockingOperator;
 
 <span class="kw">let </span>info = op.info();</code></pre></div>
-</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-BlockingOperator-1" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#110-650">source</a><a href="#impl-BlockingOperator-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.BlockingOperator.html" title="struct opendal::BlockingOperator">BlockingOperator</a></h3></section></summa [...]
+</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-BlockingOperator-1" class="impl has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#112-652">source</a><a href="#impl-BlockingOperator-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.BlockingOperator.html" title="struct opendal::BlockingOperator">BlockingOperator</a></h3></section></summa [...]
 <h5 id="notes"><a href="#notes">Notes</a></h5>
 <p>Use <code>stat</code> if you:</p>
 <ul>
@@ -45,7 +45,7 @@ you want has already been cached.</p>
         <span class="macro">println!</span>(<span class="string">&quot;file not exist&quot;</span>)
     }
 }</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.metadata" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#230-241">source</a><h4 class="code-header">pub fn <a href="#method.metadata" class="fn">metadata</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;entry: &amp;<a class="struct" href="struct.Entry.html" title="struct opendal::Entry">Entry</a>,<br>&n [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.metadata" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#232-243">source</a><h4 class="code-header">pub fn <a href="#method.metadata" class="fn">metadata</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;entry: &amp;<a class="struct" href="struct.Entry.html" title="struct opendal::Entry">Entry</a>,<br>&n [...]
 <p><code>metadata</code> will check the given query with already cached metadata
 first. And query from storage if not found.</p>
 <h5 id="notes-1"><a href="#notes-1">Notes</a></h5>
@@ -91,7 +91,7 @@ cache. In this way, we can make sure that no API call will send.</p>
 </span><span class="kw">let _ </span>= meta.content_length();
 <span class="comment">// etag MUST be correct.
 </span><span class="kw">let _ </span>= meta.etag();</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_exist" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#256-265">source</a><h4 class="code-header">pub fn <a href="#method.is_exist" class="fn">is_exist</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title= [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_exist" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#258-267">source</a><h4 class="code-header">pub fn <a href="#method.is_exist" class="fn">is_exist</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title= [...]
 <h5 id="example"><a href="#example">Example</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>anyhow::Result;
 <span class="kw">use </span>opendal::BlockingOperator;
@@ -100,7 +100,7 @@ cache. In this way, we can make sure that no API call will send.</p>
 
     <span class="prelude-val">Ok</span>(())
 }</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.create_dir" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#291-307">source</a><h4 class="code-header">pub fn <a href="#method.create_dir" class="fn">create_dir</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html"  [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.create_dir" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#293-309">source</a><h4 class="code-header">pub fn <a href="#method.create_dir" class="fn">create_dir</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html"  [...]
 <h5 id="notes-2"><a href="#notes-2">Notes</a></h5>
 <p>To indicate that a path is a directory, it is compulsory to include
 a trailing / in the path. Failure to do so may result in
@@ -112,23 +112,23 @@ a trailing / in the path. Failure to do so may result in
 </ul>
 <h5 id="examples-4"><a href="#examples-4">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code>op.create_dir(<span class="string">&quot;path/to/dir/&quot;</span>)<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#325-327">source</a><h4 class="code-header">pub fn <a href="#method.read" class="fn">read</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type openda [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#327-329">source</a><h4 class="code-header">pub fn <a href="#method.read" class="fn">read</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type openda [...]
 <p>This function will allocate a new bytes internally. For more precise memory control or
 reading data lazily, please use <a href="struct.BlockingOperator.html#method.reader" title="BlockingOperator::reader"><code>BlockingOperator::reader</code></a></p>
 <h5 id="examples-5"><a href="#examples-5">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>bs = op.read(<span class="string">&quot;path/to/file&quot;</span>)<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.range_read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#346-374">source</a><h4 class="code-header">pub fn <a href="#method.range_read" class="fn">range_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html"> [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.range_read" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#348-376">source</a><h4 class="code-header">pub fn <a href="#method.range_read" class="fn">range_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html"> [...]
 <p>This function will allocate a new bytes internally. For more precise memory control or
 reading data lazily, please use <a href="struct.BlockingOperator.html#method.range_reader" title="BlockingOperator::range_reader"><code>BlockingOperator::range_reader</code></a></p>
 <h5 id="examples-6"><a href="#examples-6">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>bs = op.range_read(<span class="string">&quot;path/to/file&quot;</span>, <span class="number">1024</span>..<span class="number">2048</span>)<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.reader" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#389-391">source</a><h4 class="code-header">pub fn <a href="#method.reader" class="fn">reader</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type  [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.reader" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#391-393">source</a><h4 class="code-header">pub fn <a href="#method.reader" class="fn">reader</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type  [...]
 <h5 id="examples-7"><a href="#examples-7">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>r = op.reader(<span class="string">&quot;path/to/file&quot;</span>)<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.range_reader" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#406-421">source</a><h4 class="code-header">pub fn <a href="#method.range_reader" class="fn">range_reader</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str. [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.range_reader" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#408-423">source</a><h4 class="code-header">pub fn <a href="#method.range_reader" class="fn">range_reader</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str. [...]
 <h5 id="examples-8"><a href="#examples-8">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>r = op.range_reader(<span class="string">&quot;path/to/file&quot;</span>, <span class="number">1024</span>..<span class="number">2048</span>)<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#443-445">source</a><h4 class="code-header">pub fn <a href="#method.write" class="fn">write</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>, bs: impl <a class="trait" href="https://doc.rust-lang.org/1.6 [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#445-447">source</a><h4 class="code-header">pub fn <a href="#method.write" class="fn">write</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>, bs: impl <a class="trait" href="https://doc.rust-lang.org/1.6 [...]
 <h5 id="notes-3"><a href="#notes-3">Notes</a></h5>
 <ul>
 <li>Write will make sure all bytes has been written, or an error will be returned.</li>
@@ -137,7 +137,7 @@ reading data lazily, please use <a href="struct.BlockingOperator.html#method.ran
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>bytes::Bytes;
 
 op.write(<span class="string">&quot;path/to/file&quot;</span>, <span class="macro">vec!</span>[<span class="number">0</span>; <span class="number">4096</span>])<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write_with" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#468-485">source</a><h4 class="code-header">pub fn <a href="#method.write_with" class="fn">write_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html"> [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write_with" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#470-487">source</a><h4 class="code-header">pub fn <a href="#method.write_with" class="fn">write_with</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html"> [...]
 <h5 id="notes-4"><a href="#notes-4">Notes</a></h5>
 <ul>
 <li>Write will make sure all bytes has been written, or an error will be returned.</li>
@@ -149,7 +149,7 @@ op.write(<span class="string">&quot;path/to/file&quot;</span>, <span class="macr
 <span class="kw">let </span>bs = <span class="string">b&quot;hello, world!&quot;</span>.to_vec();
 <span class="kw">let </span>ow = OpWrite::new().with_content_type(<span class="string">&quot;text/plain&quot;</span>);
 <span class="kw">let _ </span>= op.write_with(<span class="string">&quot;hello.txt&quot;</span>, ow, bs)<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.writer" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#510-524">source</a><h4 class="code-header">pub fn <a href="#method.writer" class="fn">writer</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type  [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.writer" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#512-526">source</a><h4 class="code-header">pub fn <a href="#method.writer" class="fn">writer</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type  [...]
 <h5 id="notes-5"><a href="#notes-5">Notes</a></h5>
 <ul>
 <li>Write will make sure all bytes has been written, or an error will be returned.</li>
@@ -161,14 +161,14 @@ op.write(<span class="string">&quot;path/to/file&quot;</span>, <span class="macr
 w.append(<span class="macro">vec!</span>[<span class="number">0</span>; <span class="number">4096</span>])<span class="question-mark">?</span>;
 w.append(<span class="macro">vec!</span>[<span class="number">1</span>; <span class="number">4096</span>])<span class="question-mark">?</span>;
 w.close()<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.delete" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#543-549">source</a><h4 class="code-header">pub fn <a href="#method.delete" class="fn">delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type  [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.delete" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#545-551">source</a><h4 class="code-header">pub fn <a href="#method.delete" class="fn">delete</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type  [...]
 <h5 id="notes-6"><a href="#notes-6">Notes</a></h5>
 <ul>
 <li>Delete not existing error won’t return errors.</li>
 </ul>
 <h5 id="examples-12"><a href="#examples-12">Examples</a></h5>
 <div class="example-wrap"><pre class="rust rust-example-rendered"><code>op.delete(<span class="string">&quot;path/to/file&quot;</span>)<span class="question-mark">?</span>;</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.list" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#584-599">source</a><h4 class="code-header">pub fn <a href="#method.list" class="fn">list</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type openda [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.list" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#586-601">source</a><h4 class="code-header">pub fn <a href="#method.list" class="fn">list</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type openda [...]
 <p>This function will create a new handle to list entries.</p>
 <p>An error will be returned if path doesn’t end with <code>/</code>.</p>
 <h5 id="examples-13"><a href="#examples-13">Examples</a></h5>
@@ -188,7 +188,7 @@ w.close()<span class="question-mark">?</span>;</code></pre></div>
         EntryMode::Unknown =&gt; <span class="kw">continue</span>,
     }
 }</code></pre></div>
-</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.scan" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#634-649">source</a><h4 class="code-header">pub fn <a href="#method.scan" class="fn">scan</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type openda [...]
+</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.scan" class="method has-srclink"><a class="srclink rightside" href="../src/opendal/types/operator/blocking_operator.rs.html#636-651">source</a><h4 class="code-header">pub fn <a href="#method.scan" class="fn">scan</a>(&amp;self, path: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.67.1/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type openda [...]
 <p>This function will create a new handle to list entries.</p>
 <p>An error will be returned if given path doesn’t end with <code>/</code>.</p>
 <h5 id="examples-14"><a href="#examples-14">Examples</a></h5>
diff --git a/docs/rust/src/opendal/raw/accessor.rs.html b/docs/rust/src/opendal/raw/accessor.rs.html
index 75eeda09..d64f3b14 100644
--- a/docs/rust/src/opendal/raw/accessor.rs.html
+++ b/docs/rust/src/opendal/raw/accessor.rs.html
@@ -539,6 +539,25 @@
 <a href="#539" id="539">539</a>
 <a href="#540" id="540">540</a>
 <a href="#541" id="541">541</a>
+<a href="#542" id="542">542</a>
+<a href="#543" id="543">543</a>
+<a href="#544" id="544">544</a>
+<a href="#545" id="545">545</a>
+<a href="#546" id="546">546</a>
+<a href="#547" id="547">547</a>
+<a href="#548" id="548">548</a>
+<a href="#549" id="549">549</a>
+<a href="#550" id="550">550</a>
+<a href="#551" id="551">551</a>
+<a href="#552" id="552">552</a>
+<a href="#553" id="553">553</a>
+<a href="#554" id="554">554</a>
+<a href="#555" id="555">555</a>
+<a href="#556" id="556">556</a>
+<a href="#557" id="557">557</a>
+<a href="#558" id="558">558</a>
+<a href="#559" id="559">559</a>
+<a href="#560" id="560">560</a>
 </pre><pre class="rust"><code><span class="comment">// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -878,6 +897,7 @@
             scheme: Scheme::Custom(<span class="string">&quot;dummy&quot;</span>),
             root: <span class="string">&quot;&quot;</span>.to_string(),
             name: <span class="string">&quot;dummy&quot;</span>.to_string(),
+            max_batch_operations: <span class="prelude-val">None</span>,
             capabilities: <span class="prelude-val">None</span>.into(),
             hints: <span class="prelude-val">None</span>.into(),
         }
@@ -972,6 +992,9 @@
     scheme: Scheme,
     root: String,
     name: String,
+    <span class="doccomment">/// limit of batch operation
+    /// only meaningful when accessor supports batch operation
+    </span>max_batch_operations: <span class="prelude-ty">Option</span>&lt;usize&gt;,
     capabilities: FlagSet&lt;AccessorCapability&gt;,
     hints: FlagSet&lt;AccessorHint&gt;,
 }
@@ -1017,6 +1040,21 @@
         <span class="self">self
     </span>}
 
+    <span class="doccomment">/// backend&#39;s number limitation of operations in a single batch.
+    ///
+    /// # Note
+    /// - Got Some(x): limitation is x
+    /// - Got None: no limitation
+    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>max_batch_operations(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; <span class="prelude-ty">Option</span>&lt;usize&gt; {
+        <span class="self">self</span>.max_batch_operations
+    }
+
+    <span class="doccomment">/// Set batch size limit for backend.
+    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>set_max_batch_operations(<span class="kw-2">&amp;mut </span><span class="self">self</span>, limit: usize) -&gt; <span class="kw-2">&amp;mut </span><span class="self">Self </span>{
+        <span class="self">self</span>.max_batch_operations = <span class="prelude-val">Some</span>(limit);
+        <span class="self">self
+    </span>}
+
     <span class="doccomment">/// Get backend&#39;s capabilities.
     </span><span class="kw">pub fn </span>capabilities(<span class="kw-2">&amp;</span><span class="self">self</span>) -&gt; FlagSet&lt;AccessorCapability&gt; {
         <span class="self">self</span>.capabilities
diff --git a/docs/rust/src/opendal/services/oss/backend.rs.html b/docs/rust/src/opendal/services/oss/backend.rs.html
index 11943aa0..7ad2cdf3 100644
--- a/docs/rust/src/opendal/services/oss/backend.rs.html
+++ b/docs/rust/src/opendal/services/oss/backend.rs.html
@@ -912,6 +912,7 @@
 <a href="#912" id="912">912</a>
 <a href="#913" id="913">913</a>
 <a href="#914" id="914">914</a>
+<a href="#915" id="915">915</a>
 </pre><pre class="rust"><code><span class="comment">// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -1328,6 +1329,7 @@
         am.set_scheme(Scheme::Oss)
             .set_root(<span class="kw-2">&amp;</span><span class="self">self</span>.root)
             .set_name(<span class="kw-2">&amp;</span><span class="self">self</span>.bucket)
+            .set_max_batch_operations(<span class="number">1000</span>)
             .set_capabilities(Read | Write | List | Scan | Presign | Batch)
             .set_hints(ReadStreamable);
 
diff --git a/docs/rust/src/opendal/services/s3/backend.rs.html b/docs/rust/src/opendal/services/s3/backend.rs.html
index 900c0f64..2dc7d877 100644
--- a/docs/rust/src/opendal/services/s3/backend.rs.html
+++ b/docs/rust/src/opendal/services/s3/backend.rs.html
@@ -1872,6 +1872,7 @@
 <a href="#1872" id="1872">1872</a>
 <a href="#1873" id="1873">1873</a>
 <a href="#1874" id="1874">1874</a>
+<a href="#1875" id="1875">1875</a>
 </pre><pre class="rust"><code><span class="comment">// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -2995,6 +2996,7 @@
         am.set_scheme(Scheme::S3)
             .set_root(<span class="kw-2">&amp;</span><span class="self">self</span>.root)
             .set_name(<span class="kw-2">&amp;</span><span class="self">self</span>.bucket)
+            .set_max_batch_operations(<span class="number">1000</span>)
             .set_capabilities(Read | Write | List | Scan | Presign | Batch)
             .set_hints(ReadStreamable);
 
diff --git a/docs/rust/src/opendal/types/operator/blocking_operator.rs.html b/docs/rust/src/opendal/types/operator/blocking_operator.rs.html
index 52d9e755..1f951247 100644
--- a/docs/rust/src/opendal/types/operator/blocking_operator.rs.html
+++ b/docs/rust/src/opendal/types/operator/blocking_operator.rs.html
@@ -648,6 +648,8 @@
 <a href="#648" id="648">648</a>
 <a href="#649" id="649">649</a>
 <a href="#650" id="650">650</a>
+<a href="#651" id="651">651</a>
+<a href="#652" id="652">652</a>
 </pre><pre class="rust"><code><span class="comment">// Licensed to the Apache Software Foundation (ASF) under one
 // or more contributor license agreements.  See the NOTICE file
 // distributed with this work for additional information
@@ -715,11 +717,13 @@
         <span class="kw-2">&amp;</span><span class="self">self</span>.accessor
     }
 
-    <span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>from_inner(accessor: FusedAccessor) -&gt; <span class="self">Self </span>{
-        <span class="self">Self </span>{
-            accessor,
-            limit: <span class="number">1000</span>,
-        }
+    <span class="doccomment">/// create a new blocking operator from inner accessor.
+    ///
+    /// # Note
+    /// default batch limit is 1000.
+    </span><span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">fn </span>from_inner(accessor: FusedAccessor) -&gt; <span class="self">Self </span>{
+        <span class="kw">let </span>limit = accessor.info().max_batch_operations().unwrap_or(<span class="number">1000</span>);
+        <span class="self">Self </span>{ accessor, limit }
     }
 
     <span class="doccomment">/// Get current operator&#39;s limit
diff --git a/index.html b/index.html
index ce418eee..be4335bf 100644
--- a/index.html
+++ b/index.html
@@ -4,13 +4,13 @@
 <meta charset="UTF-8">
 <meta name="generator" content="Docusaurus v2.3.1">
 <title data-rh="true">Apache OpenDAL</title><meta data-rh="true" property="og:title" content="Apache OpenDAL"><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://opendal.apache.org/"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docse [...]
-<link rel="preload" href="/assets/js/runtime~main.ace2674a.js" as="script">
-<link rel="preload" href="/assets/js/main.4aa84896.js" as="script">
+<link rel="preload" href="/assets/js/runtime~main.3edb22d2.js" as="script">
+<link rel="preload" href="/assets/js/main.8f54de99.js" as="script">
 </head>
 <body class="navigation-with-keyboard">
 <script>!function(){function t(t){document.documentElement.setAttribute("data-theme",t)}var e=function(){var t=null;try{t=localStorage.getItem("theme")}catch(t){}return t}();t(null!==e?e:"light")}()</script><div id="__docusaurus">
-<div id="docusaurus-base-url-issue-banner-container"></div><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hid [...]
-<script src="/assets/js/runtime~main.ace2674a.js"></script>
-<script src="/assets/js/main.4aa84896.js"></script>
+<div id="docusaurus-base-url-issue-banner-container"></div><div role="region" aria-label="Skip to main content"><a class="skipToContent_fXgn" href="#docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="navbar navbar--fixed-top"><div class="navbar__inner"><div class="navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hid [...]
+<script src="/assets/js/runtime~main.3edb22d2.js"></script>
+<script src="/assets/js/main.8f54de99.js"></script>
 </body>
 </html>
\ No newline at end of file