You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@linkis.apache.org by pe...@apache.org on 2023/03/14 13:18:00 UTC

[linkis] branch dev-1.3.2 updated: Optimization of upload file interface in FsRestfulApi.java (#4366)

This is an automated email from the ASF dual-hosted git repository.

peacewong pushed a commit to branch dev-1.3.2
in repository https://gitbox.apache.org/repos/asf/linkis.git


The following commit(s) were added to refs/heads/dev-1.3.2 by this push:
     new 8244bd1c3 Optimization of upload file interface in FsRestfulApi.java (#4366)
8244bd1c3 is described below

commit 8244bd1c3d49a7528085a9357ab6976287cf51ac
Author: binbincheng <10...@users.noreply.github.com>
AuthorDate: Tue Mar 14 21:17:53 2023 +0800

    Optimization of upload file interface in FsRestfulApi.java (#4366)
---
 linkis-dist/package/conf/linkis.properties                     |  4 +++-
 .../org/apache/linkis/filesystem/restful/api/FsRestfulApi.java |  4 ++--
 .../java/org/apache/linkis/filesystem/util/WorkspaceUtil.java  | 10 +++++++---
 3 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/linkis-dist/package/conf/linkis.properties b/linkis-dist/package/conf/linkis.properties
index 9116486b0..66ed15cba 100644
--- a/linkis-dist/package/conf/linkis.properties
+++ b/linkis-dist/package/conf/linkis.properties
@@ -87,4 +87,6 @@ linkis.session.redis.port=6379
 # redis password
 linkis.session.redis.password=test123
 # redis sso switch
-linkis.session.redis.cache.enabled=false
\ No newline at end of file
+linkis.session.redis.cache.enabled=false
+wds.linkis.workspace.filesystem.owner.check=true
+wds.linkis.workspace.filesystem.path.check=true
\ No newline at end of file
diff --git a/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java b/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java
index dd6957308..9adfbbd2d 100644
--- a/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java
+++ b/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/restful/api/FsRestfulApi.java
@@ -319,8 +319,8 @@ public class FsRestfulApi {
     FileSystem fileSystem = fsService.getFileSystem(userName, fsPath);
     for (MultipartFile p : files) {
       String fileName = p.getOriginalFilename();
+      WorkspaceUtil.charCheckFileName(fileName);
       FsPath fsPathNew = new FsPath(fsPath.getPath() + "/" + fileName);
-      WorkspaceUtil.fileAndDirNameSpecialCharCheck(fsPathNew.getPath());
       fileSystem.createNewFile(fsPathNew);
       try (InputStream is = p.getInputStream();
           OutputStream outputStream = fileSystem.write(fsPathNew, true)) {
@@ -442,7 +442,7 @@ public class FsRestfulApi {
       // downloaded(判断目录,目录不能下载)
       FileSystem fileSystem = fsService.getFileSystem(userName, fsPath);
       if (!fileSystem.exists(fsPath)) {
-        throw WorkspaceExceptionManager.createException(8011, path);
+        throw WorkspaceExceptionManager.createException(80011, path);
       }
       inputStream = fileSystem.read(fsPath);
       byte[] buffer = new byte[1024];
diff --git a/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/util/WorkspaceUtil.java b/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/util/WorkspaceUtil.java
index a21dc57cb..738167fc2 100644
--- a/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/util/WorkspaceUtil.java
+++ b/linkis-public-enhancements/linkis-script-dev/linkis-storage-script-dev-server/src/main/java/org/apache/linkis/filesystem/util/WorkspaceUtil.java
@@ -84,14 +84,18 @@ public class WorkspaceUtil {
 
   public static void fileAndDirNameSpecialCharCheck(String path) throws WorkSpaceException {
     String name = new File(path).getName();
-    int i = name.lastIndexOf(".");
+    charCheckFileName(name);
+  }
+
+  public static void charCheckFileName(String fileName) throws WorkSpaceException {
+    int i = fileName.lastIndexOf(".");
     if (i != -1) {
-      name = name.substring(0, i);
+      fileName = fileName.substring(0, i);
     }
     // Only support numbers, uppercase letters, underscores, Chinese(只支持数字,字母大小写,下划线,中文)
     String specialRegEx = "^[\\w\\u4e00-\\u9fa5]{1,200}$";
     Pattern specialPattern = Pattern.compile(specialRegEx);
-    if (!specialPattern.matcher(name).find()) {
+    if (!specialPattern.matcher(fileName).find()) {
       WorkspaceExceptionManager.createException(80028);
     }
   }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@linkis.apache.org
For additional commands, e-mail: commits-help@linkis.apache.org