You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by da...@apache.org on 2025/01/20 02:36:12 UTC
(jackrabbit-oak) branch 1.22 updated: Merge pull request #1894 from t-rana/issues/OAK-11266 (#1996)
This is an automated email from the ASF dual-hosted git repository.
daim pushed a commit to branch 1.22
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
The following commit(s) were added to refs/heads/1.22 by this push:
new 4e7c128b78 Merge pull request #1894 from t-rana/issues/OAK-11266 (#1996)
4e7c128b78 is described below
commit 4e7c128b784197ea92567edd699716359e4567ed
Author: Rishabh Kumar <ri...@gmail.com>
AuthorDate: Mon Jan 20 08:06:08 2025 +0530
Merge pull request #1894 from t-rana/issues/OAK-11266 (#1996)
OAK-11266 : Create a new mode GCP for Blob cloud
---
.../jackrabbit/oak/blob/cloud/s3/S3Backend.java | 22 ++++++++++++++++++++++
.../jackrabbit/oak/blob/cloud/s3/S3Constants.java | 5 +++++
.../oak/blob/cloud/s3/TestS3DataStore.java | 2 +-
3 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java b/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java
index 7db96e16da..cad6a37ea1 100644
--- a/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java
+++ b/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Backend.java
@@ -496,6 +496,20 @@ public class S3Backend extends AbstractSharedBackend {
*/
public void setProperties(Properties properties) {
this.properties = properties;
+ setRemoteStorageMode();
+ }
+
+ private void setRemoteStorageMode() {
+ String s3EndPoint = properties.getProperty(S3Constants.S3_END_POINT, "");
+ if (s3EndPoint.contains("googleapis")) {
+ if (properties.get(S3Constants.MODE) == RemoteStorageMode.S3) {
+ LOG.warn("Mismatch between remote storage mode and s3EndPoint, overriding mode to GCP");
+ }
+ properties.put(S3Constants.MODE, RemoteStorageMode.GCP);
+ return;
+ }
+ // default mode is S3
+ properties.put(S3Constants.MODE, RemoteStorageMode.S3);
}
@Override
@@ -1367,4 +1381,12 @@ public class S3Backend extends AbstractSharedBackend {
this.oldKey = oldKey;
}
}
+
+ /**
+ * Enum to indicate remote storage mode
+ */
+ private enum RemoteStorageMode {
+ S3,
+ GCP
+ }
}
diff --git a/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Constants.java b/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Constants.java
index 3852e35b2f..e77b4bd7f2 100644
--- a/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Constants.java
+++ b/oak-blob-cloud/src/main/java/org/apache/jackrabbit/oak/blob/cloud/s3/S3Constants.java
@@ -144,6 +144,11 @@ public final class S3Constants {
*/
public static final String PROXY_PORT = "proxyPort";
+ /**
+ * Constant to set remote storage mode
+ */
+ public static final String MODE = "mode";
+
public static final String PRESIGNED_HTTP_UPLOAD_URI_EXPIRY_SECONDS = "presignedHttpUploadURIExpirySeconds";
public static final String PRESIGNED_HTTP_DOWNLOAD_URI_EXPIRY_SECONDS = "presignedHttpDownloadURIExpirySeconds";
diff --git a/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/TestS3DataStore.java b/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/TestS3DataStore.java
index b6b54d88b9..6d8fb9b0de 100644
--- a/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/TestS3DataStore.java
+++ b/oak-blob-cloud/src/test/java/org/apache/jackrabbit/oak/blob/cloud/s3/TestS3DataStore.java
@@ -105,7 +105,7 @@ public class TestS3DataStore {
@Test
public void testAccessParamLeakOnError() throws Exception {
expectedEx.expect(RepositoryException.class);
- expectedEx.expectMessage("Could not initialize S3 from {s3Region=us-standard, intValueKey=25}");
+ expectedEx.expectMessage("Could not initialize S3 from {mode=S3, s3Region=us-standard, intValueKey=25}");
props.put(S3Constants.ACCESS_KEY, "abcd");
props.put(S3Constants.SECRET_KEY, "123456");