diff --git a/manufacturing-ai-suite/industrial-edge-insights-multimodal/.env b/manufacturing-ai-suite/industrial-edge-insights-multimodal/.env index 6c6b3c790..7c5b78731 100644 --- a/manufacturing-ai-suite/industrial-edge-insights-multimodal/.env +++ b/manufacturing-ai-suite/industrial-edge-insights-multimodal/.env @@ -95,4 +95,11 @@ SIMULATION_TARGET_FPS=10 FUSION_MODE=OR # Tolerance in nanoseconds for matching messages by timestamp # Default is 50ms = 50,000,000 ns -TOLERANCE_NS=50e6 \ No newline at end of file +TOLERANCE_NS=50e6 + +# MinIO service & client +MR_MINIO_ACCESS_KEY= +MR_MINIO_SECRET_KEY= +MR_MINIO_HOSTNAME=${HOST_IP} +MR_MINIO_SERVER_PORT=8000 + diff --git a/manufacturing-ai-suite/industrial-edge-insights-multimodal/configs/dlstreamer-pipeline-server/config.json b/manufacturing-ai-suite/industrial-edge-insights-multimodal/configs/dlstreamer-pipeline-server/config.json index f94baf1a7..754d0d4a0 100644 --- a/manufacturing-ai-suite/industrial-edge-insights-multimodal/configs/dlstreamer-pipeline-server/config.json +++ b/manufacturing-ai-suite/industrial-edge-insights-multimodal/configs/dlstreamer-pipeline-server/config.json @@ -5,7 +5,7 @@ "name": "weld_defect_classification", "source": "gstreamer", "queue_maxsize": 50, - "pipeline": "rtspsrc location=\"rtsp://mediamtx:8554/live.stream\" latency=100 name=source ! rtph264depay ! h264parse ! decodebin ! videoconvert ! gvaclassify inference-region=full-frame name=classification ! gvametaconvert add-empty-results=true name=metaconvert ! queue ! gvafpscounter ! appsink name=destination", + "pipeline": "rtspsrc location=\"rtsp://mediamtx:8554/live.stream\" latency=100 name=source ! rtph264depay ! h264parse ! decodebin ! videoconvert ! gvaclassify inference-region=full-frame name=classification ! gvametaconvert add-empty-results=true name=metaconvert ! queue ! gvafpscounter ! jpegenc ! appsink name=destination", "parameters": { "type": "object", "properties": { @@ -35,8 +35,13 @@ "device": "CPU" } } + }, + "S3_write": { + "bucket": "multimodeldemo", + "folder_prefix": "camera1", + "block": "false" } } ] } -} \ No newline at end of file +} diff --git a/manufacturing-ai-suite/industrial-edge-insights-multimodal/create_bucket.py b/manufacturing-ai-suite/industrial-edge-insights-multimodal/create_bucket.py new file mode 100644 index 000000000..f7f72e961 --- /dev/null +++ b/manufacturing-ai-suite/industrial-edge-insights-multimodal/create_bucket.py @@ -0,0 +1,15 @@ +import boto3 +url = "http://$HOST_IP:8000" +user = "minioaccesskey added in .env" +password = "miniosecretkey added in .env" +bucket_name = "multimodeldemo" + +client= boto3.client( + "s3", + endpoint_url=url, + aws_access_key_id=user, + aws_secret_access_key=password +) +client.create_bucket(Bucket=bucket_name) +buckets = client.list_buckets() +print("Buckets:", [b["Name"] for b in buckets.get("Buckets", [])]) diff --git a/manufacturing-ai-suite/industrial-edge-insights-multimodal/docker-compose.yml b/manufacturing-ai-suite/industrial-edge-insights-multimodal/docker-compose.yml index c6fffb9c2..a48eb6770 100644 --- a/manufacturing-ai-suite/industrial-edge-insights-multimodal/docker-compose.yml +++ b/manufacturing-ai-suite/industrial-edge-insights-multimodal/docker-compose.yml @@ -372,6 +372,30 @@ services: # Selective mount can be done for deployment as mounting whole /dev is not recommended - "/dev:/dev" + mraas_minio: + image: minio/minio:RELEASE.2020-12-12T08-39-07Z + container_name: mraas_minio + hostname: mraas_minio + ipc: "none" + expose: + - ${MR_MINIO_SERVER_PORT} + volumes: + - ./Certificates/ssl/:/certs/:rw + - "vol_minio_data:/data" + networks: + - timeseries_network + restart: unless-stopped + security_opt: + - no-new-privileges + ports: + - '8000:8000' + environment: + AppName: "ModelRegistry" + MINIO_ACCESS_KEY: ${MR_MINIO_ACCESS_KEY} + MINIO_SECRET_KEY: ${MR_MINIO_SECRET_KEY} + ENABLE_HTTPS_MODE: ${ENABLE_HTTPS_MODE} + command: server --address ":8000" --certs-dir /certs /data + mediamtx: image: bluenviron/mediamtx:1.11.3 container_name: mediamtx @@ -447,4 +471,7 @@ volumes: driver: local driver_opts: type: tmpfs - device: tmpfs \ No newline at end of file + device: tmpfs + vol_minio_data: + driver: local +