diff --git a/assets/plugin/alioss.png b/assets/plugin/alioss.png
new file mode 100644
index 00000000..09a1b7e9
Binary files /dev/null and b/assets/plugin/alioss.png differ
diff --git a/core/server/pom.xml b/core/server/pom.xml
index f18480be..69e6dfa8 100644
--- a/core/server/pom.xml
+++ b/core/server/pom.xml
@@ -265,6 +265,11 @@
datacap-plugin-jdbc-duckdb
${project.version}
+
+ io.edurt.datacap.plugin.natived
+ datacap-plugin-native-alioss
+ ${project.version}
+
diff --git a/core/server/src/main/etc/conf/plugins/native/alioss.json b/core/server/src/main/etc/conf/plugins/native/alioss.json
new file mode 100644
index 00000000..e6adbd72
--- /dev/null
+++ b/core/server/src/main/etc/conf/plugins/native/alioss.json
@@ -0,0 +1,39 @@
+{
+ "name": "Alioss",
+ "supportTime": "2023-02-23",
+ "configures": [
+ {
+ "field": "name",
+ "type": "String",
+ "required": true,
+ "message": "name is a required field, please be sure to enter"
+ },
+ {
+ "field": "host",
+ "type": "String",
+ "required": true,
+ "value": "https://oss-cn-regison.aliyuncs.com",
+ "message": "host is a required field, please be sure to enter"
+ },
+ {
+ "field": "username",
+ "type": "String",
+ "required": true,
+ "group": "authorization"
+ },
+ {
+ "field": "password",
+ "type": "String",
+ "required": true,
+ "group": "authorization"
+ },
+ {
+ "field": "database",
+ "type": "String",
+ "required": true,
+ "value": "default",
+ "message": "database is a required field, please be sure to enter",
+ "group": "advanced"
+ }
+ ]
+}
diff --git a/core/web/console-fe/public/static/images/plugin/Alioss.png b/core/web/console-fe/public/static/images/plugin/Alioss.png
new file mode 100644
index 00000000..09a1b7e9
Binary files /dev/null and b/core/web/console-fe/public/static/images/plugin/Alioss.png differ
diff --git a/plugin/native/alioss/pom.xml b/plugin/native/alioss/pom.xml
new file mode 100644
index 00000000..08f2fb0e
--- /dev/null
+++ b/plugin/native/alioss/pom.xml
@@ -0,0 +1,66 @@
+
+
+ 4.0.0
+
+ io.edurt.datacap.plugin.natived
+ datacap-plugin-native
+ 1.6.0-SNAPSHOT
+
+
+ datacap-plugin-native-alioss
+ DataCap plugin for native (Ali oss)
+
+
+ 3.16.1
+ native-alioss
+
+
+
+
+ io.edurt.datacap
+ datacap-spi
+ provided
+
+
+ io.edurt.datacap.common
+ datacap-common
+
+
+ commons-beanutils
+ commons-beanutils
+
+
+ com.aliyun.oss
+ aliyun-sdk-oss
+ ${alioss.version}
+
+
+
+
+
+
+ maven-assembly-plugin
+ ${assembly-plugin.version}
+
+ ${plugin.name}
+
+ ../../../configure/assembly/assembly-plugin.xml
+
+ ../../../dist/plugins/${plugin.name}
+
+
+
+ make-assembly
+ package
+
+ single
+
+
+
+
+
+
+
+
diff --git a/plugin/native/alioss/src/main/java/io/edurt/datacap/plugin/natived/alioss/AliossAdapter.java b/plugin/native/alioss/src/main/java/io/edurt/datacap/plugin/natived/alioss/AliossAdapter.java
new file mode 100644
index 00000000..23a5a2ff
--- /dev/null
+++ b/plugin/native/alioss/src/main/java/io/edurt/datacap/plugin/natived/alioss/AliossAdapter.java
@@ -0,0 +1,82 @@
+package io.edurt.datacap.plugin.natived.alioss;
+
+import com.aliyun.oss.OSS;
+import com.aliyun.oss.model.ObjectListing;
+import com.google.common.base.Preconditions;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import io.edurt.datacap.spi.adapter.NativeAdapter;
+import io.edurt.datacap.spi.model.Configure;
+import io.edurt.datacap.spi.model.Response;
+import io.edurt.datacap.spi.model.Time;
+import io.edurt.datacap.sql.SqlBase;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+@Slf4j
+@SuppressFBWarnings(value = {"RCN_REDUNDANT_NULLCHECK_WOULD_HAVE_BEEN_A_NPE", "REC_CATCH_EXCEPTION"},
+ justification = "I prefer to suppress these FindBugs warnings")
+public class AliossAdapter
+ extends NativeAdapter
+{
+ protected AliossConnection aliossConnection;
+ private final AliossParser parser;
+
+ public AliossAdapter(AliossConnection aliossConnection, AliossParser parser)
+ {
+ super(aliossConnection, parser);
+ this.aliossConnection = aliossConnection;
+ this.parser = parser;
+ }
+
+ @Override
+ public Response handlerExecute(String content)
+ {
+ Time processorTime = new Time();
+ processorTime.setStart(new Date().getTime());
+ Response response = this.aliossConnection.getResponse();
+ Configure configure = this.aliossConnection.getConfigure();
+ if (response.getIsConnected()) {
+ List headers = new ArrayList<>();
+ List types = new ArrayList<>();
+ List