@inteli.city/node-red-contrib-bucket-collection 1.0.0
Node-RED nodes for object storage bucket operations (S3-compatible, GCS)
node-red-contrib-bucket-collection
Node-RED nodes for MinIO object storage operations.
One node per operation. No hidden abstractions.
Nodes
| Node | Type | Purpose |
|---|---|---|
minio-config |
config | Shared MinIO connection and credentials |
minio.upload |
operation | Upload an object to a bucket |
minio.get |
operation | Download an object from a bucket |
minio.delete |
operation | Delete an object from a bucket |
minio.list |
operation | List all objects in a bucket |
Config Node (minio-config)
Create one config node per MinIO server. All operation nodes reference it.
| Field | Description |
|---|---|
| Endpoint | MinIO server hostname or IP |
| Port | Server port (default: 9000) |
| Use SSL | Enable HTTPS |
| Access Key | Stored as a credential |
| Secret Key | Stored as a credential (password field) |
The MinIO client is instantiated once at deploy time and reused across all messages.
Input / Output Contract
All operation nodes follow the same contract:
Input overrides — msg.bucket and msg.objectName override the values set in the node config.
Output — msg.payload contains the operation result.
Status indicators:
- Yellow dot — operation in progress
- Green dot — success
- Red ring — error
Node Reference
minio.upload
Upload an object to a bucket.
| Config | Description | Override via |
|---|---|---|
| Connection | minio-config node |
— |
| Bucket | Target bucket name | msg.bucket |
| Object Name | Destination path (e.g. folder/file.txt) |
msg.objectName |
Input: msg.payload — readable stream or Buffer to upload.
Output: msg.payload — result returned by MinIO putObject.
No multipart upload support yet. For large files, pipe the stream directly.
minio.get
Download an object from a bucket.
| Config | Description | Override via |
|---|---|---|
| Connection | minio-config node |
— |
| Bucket | Source bucket name | msg.bucket |
| Object Name | Object path to retrieve | msg.objectName |
Output: msg.payload — readable stream of the object content. Pipe or collect it in a downstream node.
minio.delete
Delete an object from a bucket.
| Config | Description | Override via |
|---|---|---|
| Connection | minio-config node |
— |
| Bucket | Target bucket name | msg.bucket |
| Object Name | Object path to delete | msg.objectName |
Output: msg.payload — { success: true } on success.
minio.list
List all objects in a bucket recursively.
| Config | Description | Override via |
|---|---|---|
| Connection | minio-config node |
— |
| Bucket | Bucket to list | msg.bucket |
Output: msg.payload — array of object metadata (name, size, lastModified, etag).
Known Limitations
minio.getreturns a stream — the user is responsible for consuming it downstreamminio.uploadexpectsmsg.payloadto be a stream or Buffer- No multipart upload support
- No retry logic
Design Principles
- One node, one operation — no operation selector inside nodes
- Config node as single source of truth — credentials live in one place
- Explicit over magical — no auto-detection, no hidden fallbacks
License
Apache-2.0