Browse Source

Merge pull request #127 from Tumao727/feature/insert-data

fix fetch partition, update http size limit and timeout
ryjiang 4 years ago
parent
commit
0869651ea0

+ 8 - 8
client/src/components/insert/Container.tsx

@@ -41,8 +41,8 @@ const InsertContainer: FC<InsertContentProps> = ({
   defaultSelectedCollection,
   defaultSelectedPartition,
 
-  partitions = [],
-  schema = [],
+  partitions,
+  schema,
   handleInsert,
 }) => {
   const classes = getStyles();
@@ -53,7 +53,7 @@ const InsertContainer: FC<InsertContentProps> = ({
   const [activeStep, setActiveStep] = useState<InsertStepperEnum>(
     InsertStepperEnum.import
   );
-  const [insertStatus, setInsertStauts] = useState<InsertStatusEnum>(
+  const [insertStatus, setInsertStatus] = useState<InsertStatusEnum>(
     InsertStatusEnum.init
   );
   const [insertFailMsg, setInsertFailMsg] = useState<string>('');
@@ -127,7 +127,7 @@ const InsertContainer: FC<InsertContentProps> = ({
 
   useEffect(() => {
     // if not on partitions page, we need to fetch partitions according to selected collection
-    if (partitions.length === 0) {
+    if (!partitions || partitions.length === 0) {
       fetchPartition();
     } else {
       const options = partitions
@@ -203,7 +203,7 @@ const InsertContainer: FC<InsertContentProps> = ({
 
   const schemaOptions: Option[] = useMemo(() => {
     const list =
-      schema.length > 0
+      schema && schema.length > 0
         ? schema
         : collections.find(c => c._name === collectionValue)?._fields;
     return (list || []).map(s => ({
@@ -232,11 +232,11 @@ const InsertContainer: FC<InsertContentProps> = ({
   };
 
   const handleInsertData = async () => {
+    // start loading
+    setInsertStatus(InsertStatusEnum.loading);
     // combine table heads and data
     const tableData = isContainFieldNames ? csvData.slice(1) : csvData;
     const data = combineHeadsAndData(tableHeads, tableData);
-
-    setInsertStauts(InsertStatusEnum.loading);
     const { result, msg } = await handleInsert(
       collectionValue,
       partitionValue,
@@ -247,7 +247,7 @@ const InsertContainer: FC<InsertContentProps> = ({
       setInsertFailMsg(msg);
     }
     const status = result ? InsertStatusEnum.success : InsertStatusEnum.error;
-    setInsertStauts(status);
+    setInsertStatus(status);
   };
 
   const handleCollectionChange = (name: string) => {

+ 2 - 0
client/src/components/uploader/Uploader.tsx

@@ -51,6 +51,8 @@ const Uploader: FC<UploaderProps> = ({
       }
       if (isSizeOverLimit) {
         openSnackBar(overSizeWarning, 'error');
+        const uploader = inputRef.current! as HTMLFormElement;
+        uploader.value = null;
         return;
       }
 

+ 1 - 1
client/src/http/Axios.ts

@@ -10,7 +10,7 @@ export const url =
 
 const axiosInstance = axios.create({
   baseURL: `${url}/api/v1`,
-  timeout: 10000,
+  timeout: 60000,
 });
 
 axiosInstance.interceptors.request.use(

+ 1 - 0
server/package.json

@@ -31,6 +31,7 @@
     "@types/passport-jwt": "^3.0.5",
     "@types/passport-local": "^1.0.33",
     "@zilliz/milvus2-sdk-node": "^1.0.2",
+    "body-parser": "^1.19.0",
     "class-transformer": "^0.4.0",
     "class-validator": "^0.13.1",
     "passport": "^0.4.1",

+ 2 - 0
server/src/main.ts

@@ -3,6 +3,7 @@ import { Logger } from '@nestjs/common';
 
 import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
 import { AppModule } from './app.module';
+import { json } from 'body-parser';
 
 async function bootstrap() {
   const port = 3000;
@@ -17,6 +18,7 @@ async function bootstrap() {
     .build();
   const document = SwaggerModule.createDocument(app, config);
   SwaggerModule.setup('api', app, document);
+  app.use(json({ limit: '50mb' }));
 
   await app.listen(port);
   Logger.log(`Milvus insight API server is running on port ${port}`);

+ 1 - 1
server/yarn.lock

@@ -1608,7 +1608,7 @@ bl@^4.0.3, bl@^4.1.0:
     inherits "^2.0.4"
     readable-stream "^3.4.0"
 
-body-parser@1.19.0:
+body-parser@1.19.0, body-parser@^1.19.0:
   version "1.19.0"
   resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
   integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==