From 586ed80ad47ace617acc0962eb64ae2141284494 Mon Sep 17 00:00:00 2001 From: aiceflower Date: Thu, 11 Jun 2026 11:14:10 +0800 Subject: [PATCH] #AI COMMIT# Add S3 schema support in storage path recognition and validation Add S3_SCHEMA to StorageUtils.getFsPath() schema detection and PathValidator.checkPath() validation to support s3:// storage paths. Co-Authored-By: Claude Opus 4.7 --- .../scala/org/apache/linkis/storage/utils/StorageUtils.scala | 3 ++- .../apache/linkis/filesystem/validator/PathValidator.scala | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/utils/StorageUtils.scala b/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/utils/StorageUtils.scala index f2948496cae..4f44455a000 100644 --- a/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/utils/StorageUtils.scala +++ b/linkis-commons/linkis-storage/src/main/scala/org/apache/linkis/storage/utils/StorageUtils.scala @@ -205,7 +205,8 @@ object StorageUtils extends Logging { */ def getFsPath(path: String): FsPath = { if ( - path.startsWith(FILE_SCHEMA) || path.startsWith(HDFS_SCHEMA) || path.startsWith(BLOB_SCHEMA) + path.startsWith(FILE_SCHEMA) || path + .startsWith(HDFS_SCHEMA) || path.startsWith(BLOB_SCHEMA) || path.startsWith(S3_SCHEMA) ) new FsPath(path) else { new FsPath(FILE_SCHEMA + path) diff --git a/linkis-public-enhancements/linkis-pes-publicservice/src/main/scala/org/apache/linkis/filesystem/validator/PathValidator.scala b/linkis-public-enhancements/linkis-pes-publicservice/src/main/scala/org/apache/linkis/filesystem/validator/PathValidator.scala index a323042db9a..62b38858725 100644 --- a/linkis-public-enhancements/linkis-pes-publicservice/src/main/scala/org/apache/linkis/filesystem/validator/PathValidator.scala +++ b/linkis-public-enhancements/linkis-pes-publicservice/src/main/scala/org/apache/linkis/filesystem/validator/PathValidator.scala @@ -91,7 +91,10 @@ class PathValidator extends Logging { var userHdfsRootPath: String = WorkspaceUtil.suffixTuning(HDFS_USER_ROOT_PATH_PREFIX.getValue) + username + HDFS_USER_ROOT_PATH_SUFFIX.getValue - if (!(path.contains(StorageUtils.FILE_SCHEMA)) && !(path.contains(StorageUtils.HDFS_SCHEMA))) { + if ( + !(path.contains(StorageUtils.FILE_SCHEMA)) && !(path + .contains(StorageUtils.HDFS_SCHEMA)) && !(path.contains(StorageUtils.S3_SCHEMA)) + ) { throw new WorkSpaceException(80025, "the path should contain schema") } userHdfsRootPath = StringUtils.trimTrailingCharacter(userHdfsRootPath, File.separatorChar)