diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d02e9d94740..ce48f5b4bf50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/). * feat(core): Add `content_encoding` to `MetaData` by @Frank-III in https://github.com/apache/opendal/pull/5400 * feat:(core): add `content encoding` to `Opwrite` by @Frank-III in https://github.com/apache/opendal/pull/5390 * feat(services/obs): support user defined metadata by @Frank-III in https://github.com/apache/opendal/pull/5405 +* feat: impl configurable OperatorOutputStream maxBytes by @tisonkun in https://github.com/apache/opendal/pull/5422 ### Changed * refactor (bindings/zig): Improvements by @kassane in https://github.com/apache/opendal/pull/5247 * refactor: Remove metakey concept by @Xuanwo in https://github.com/apache/opendal/pull/5319 @@ -52,12 +53,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/). * fix: oli clippy and CI file by @waynexia in https://github.com/apache/opendal/pull/5389 * fix(services/obs): support huawei.com by @FayeSpica in https://github.com/apache/opendal/pull/5399 * fix(integrations/cloud_filter): use explicit `stat` instead of `Entry::metadata` in `fetch_placeholders` by @ho-229 in https://github.com/apache/opendal/pull/5416 +* fix(core): S3 multipart uploads does not set file metadata by @catcatmu in https://github.com/apache/opendal/pull/5430 +* fix: always contains path label if configured by @waynexia in https://github.com/apache/opendal/pull/5433 ### Docs * docs: Enable force_orphan to reduce clone size by @Xuanwo in https://github.com/apache/opendal/pull/5289 * docs: Establish VISION for "One Layer, All Storage" by @Xuanwo in https://github.com/apache/opendal/pull/5309 * docs: Polish docs for write with if not exists by @Xuanwo in https://github.com/apache/opendal/pull/5320 * docs(core): add the description of version parameter for operator by @meteorgan in https://github.com/apache/opendal/pull/5144 * docs(core): Add upgrade to v0.51 by @Xuanwo in https://github.com/apache/opendal/pull/5406 +* docs: Update release.md by @tisonkun in https://github.com/apache/opendal/pull/5431 ### CI * ci: Remove the token of codspeed by @Xuanwo in https://github.com/apache/opendal/pull/5283 * ci: Allow force push for `gh-pages` by @Xuanwo in https://github.com/apache/opendal/pull/5290 diff --git a/bindings/haskell/opendal.cabal b/bindings/haskell/opendal.cabal index f6d0abc666b5..5270379a19a0 100644 --- a/bindings/haskell/opendal.cabal +++ b/bindings/haskell/opendal.cabal @@ -17,7 +17,7 @@ cabal-version: 3.0 -- under the License. name: opendal -version: 0.44.11.0 +version: 0.44.14.0 license: Apache-2.0 synopsis: Apache OpenDALâ„¢ Haskell Binding description: diff --git a/bindings/java/pom.xml b/bindings/java/pom.xml index 55b6f3dacaaf..a9e719a36344 100644 --- a/bindings/java/pom.xml +++ b/bindings/java/pom.xml @@ -32,7 +32,7 @@ org.apache.opendal opendal - 0.47.4 + 0.47.6 Apache OpenDALâ„¢ diff --git a/bindings/nodejs/npm/darwin-arm64/package.json b/bindings/nodejs/npm/darwin-arm64/package.json index 3621846d29d9..9b3623e26553 100644 --- a/bindings/nodejs/npm/darwin-arm64/package.json +++ b/bindings/nodejs/npm/darwin-arm64/package.json @@ -1,7 +1,7 @@ { "name": "@opendal/lib-darwin-arm64", "repository": "git@github.com/apache/opendal.git", - "version": "0.47.7", + "version": "0.47.8", "os": [ "darwin" ], diff --git a/bindings/nodejs/npm/darwin-x64/package.json b/bindings/nodejs/npm/darwin-x64/package.json index e1fefdb75ab9..d7af8a5043df 100644 --- a/bindings/nodejs/npm/darwin-x64/package.json +++ b/bindings/nodejs/npm/darwin-x64/package.json @@ -1,6 +1,6 @@ { "name": "@opendal/lib-darwin-x64", - "version": "0.47.7", + "version": "0.47.8", "repository": "git@github.com/apache/opendal.git", "os": [ "darwin" diff --git a/bindings/nodejs/npm/linux-arm64-gnu/package.json b/bindings/nodejs/npm/linux-arm64-gnu/package.json index 72ebc4d56844..288893e28a26 100644 --- a/bindings/nodejs/npm/linux-arm64-gnu/package.json +++ b/bindings/nodejs/npm/linux-arm64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@opendal/lib-linux-arm64-gnu", - "version": "0.47.7", + "version": "0.47.8", "repository": "git@github.com/apache/opendal.git", "os": [ "linux" diff --git a/bindings/nodejs/npm/linux-arm64-musl/package.json b/bindings/nodejs/npm/linux-arm64-musl/package.json index e68dca0fc2dc..77aef5c5a6c6 100644 --- a/bindings/nodejs/npm/linux-arm64-musl/package.json +++ b/bindings/nodejs/npm/linux-arm64-musl/package.json @@ -1,6 +1,6 @@ { "name": "@opendal/lib-linux-arm64-musl", - "version": "0.47.7", + "version": "0.47.8", "repository": "git@github.com/apache/opendal.git", "os": [ "linux" diff --git a/bindings/nodejs/npm/linux-x64-gnu/package.json b/bindings/nodejs/npm/linux-x64-gnu/package.json index bb6ae4610504..2013c68c2cda 100644 --- a/bindings/nodejs/npm/linux-x64-gnu/package.json +++ b/bindings/nodejs/npm/linux-x64-gnu/package.json @@ -1,6 +1,6 @@ { "name": "@opendal/lib-linux-x64-gnu", - "version": "0.47.7", + "version": "0.47.8", "repository": "git@github.com/apache/opendal.git", "os": [ "linux" diff --git a/bindings/nodejs/npm/win32-arm64-msvc/package.json b/bindings/nodejs/npm/win32-arm64-msvc/package.json index a54c4b8c72b0..e161a8442952 100644 --- a/bindings/nodejs/npm/win32-arm64-msvc/package.json +++ b/bindings/nodejs/npm/win32-arm64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@opendal/lib-win32-arm64-msvc", - "version": "0.47.7", + "version": "0.47.8", "repository": "git@github.com/apache/opendal.git", "os": [ "win32" diff --git a/bindings/nodejs/npm/win32-x64-msvc/package.json b/bindings/nodejs/npm/win32-x64-msvc/package.json index a2ccd2f1722f..dca3da72517d 100644 --- a/bindings/nodejs/npm/win32-x64-msvc/package.json +++ b/bindings/nodejs/npm/win32-x64-msvc/package.json @@ -1,6 +1,6 @@ { "name": "@opendal/lib-win32-x64-msvc", - "version": "0.47.7", + "version": "0.47.8", "repository": "git@github.com/apache/opendal.git", "os": [ "win32" diff --git a/bindings/nodejs/package.json b/bindings/nodejs/package.json index 8b1c692b109f..aa3f22a6d48f 100644 --- a/bindings/nodejs/package.json +++ b/bindings/nodejs/package.json @@ -1,7 +1,7 @@ { "name": "opendal", "author": "Apache OpenDAL ", - "version": "0.47.7", + "version": "0.47.8", "license": "Apache-2.0", "main": "index.js", "types": "index.d.ts", diff --git a/core/src/layers/observe/mod.rs b/core/src/layers/observe/mod.rs index dcbe059a43ef..5465bcd0a3c4 100644 --- a/core/src/layers/observe/mod.rs +++ b/core/src/layers/observe/mod.rs @@ -51,11 +51,11 @@ pub use metrics::METRIC_OPERATION_ERRORS_TOTAL; /// - level > 0: the path label will be the path split by "/" and get the last n level, /// if n=1 and input path is "abc/def/ghi", and then we'll use "abc/" as the path label. pub fn path_label_value(path: &str, level: usize) -> Option<&str> { - if path.is_empty() { - return None; - } - if level > 0 { + if path.is_empty() { + return Some(""); + } + let label_value = path .char_indices() .filter(|&(_, c)| c == '/') @@ -80,6 +80,7 @@ mod tests { assert_eq!(path_label_value(path, 3), Some("abc/def/ghi")); assert_eq!(path_label_value(path, usize::MAX), Some("abc/def/ghi")); - assert_eq!(path_label_value("", 1), None); + assert_eq!(path_label_value("", 0), None); + assert_eq!(path_label_value("", 1), Some("")); } } diff --git a/core/src/services/s3/core.rs b/core/src/services/s3/core.rs index 19bdbfdf7209..2f9a359c770d 100644 --- a/core/src/services/s3/core.rs +++ b/core/src/services/s3/core.rs @@ -666,6 +666,13 @@ impl S3Core { req = req.header(HeaderName::from_static(constants::X_AMZ_STORAGE_CLASS), v); } + // Set user metadata headers. + if let Some(user_metadata) = args.user_metadata() { + for (key, value) in user_metadata { + req = req.header(format!("{X_AMZ_META_PREFIX}{key}"), value) + } + } + // Set SSE headers. let req = self.insert_sse_headers(req, true); diff --git a/website/community/release/release.md b/website/community/release/release.md index 7e113d94bb2c..9be8cc7eb589 100644 --- a/website/community/release/release.md +++ b/website/community/release/release.md @@ -139,11 +139,10 @@ For example: Bump all components' version in the project to the new opendal version. Please note that this version is the exact version of the release, not the release candidate version. -- rust core: bump version in `Cargo.toml` -- cpp binding: bump version in `bindings/cpp/CMakeLists.txt` -- haskell binding: bump version and update the `tag` field of `source-repository this` in `bindings/haskell/opendal.cabal` -- java binding: bump version in `bindings/java/pom.xml` -- node.js binding: bump version in `bindings/nodejs/package.json` and `bindings/nodejs/npm/*/package.json` +- Rust core: Bump version in `Cargo.toml` +- Haskell binding: Bump version and update the `tag` field of `source-repository this` in `bindings/haskell/opendal.cabal` +- Java binding: Bump version in `bindings/java/pom.xml` +- Node.js binding: Bump version in `bindings/nodejs/package.json` and `bindings/nodejs/npm/*/package.json` ### Update docs