# objstore

A RocketRide source and target endpoint for S3 buckets: Amazon S3 itself, or any S3-compatible object store such as MinIO.

## What it does

The node scans objects in one or more buckets and feeds them into the pipeline
on the `tags` lane, and can export, download, or delete objects as a target.
It registers two services backed by the same implementation: `aws` for Amazon
S3, addressed by region, and `objstore` for S3-compatible stores, addressed by
endpoint URL. Pick `objstore` for anything that is not Amazon S3.

## Lanes

| Input | Output | Description |
| ----- | ------ | ----------- |
| `_source` | `tags` | Emits the scanned objects to be processed. |

## Configuration

Both services take an access key and secret key, and paths in the form
`bucket/folder/*` for include and exclude. The first path component is always
the bucket.

### aws

Set the region the buckets live in. The endpoint is derived from it, so no URL
is needed.

### objstore

Set the store's endpoint URL, e.g. `localhost:9000` for a local MinIO.
`useSSL` defaults to true; set it to false for a plain HTTP endpoint.

## Notes

### One library, two services

Both services name the same `objstore` library, which the engine loads once,
on the first lookup of either. That load registers both services' factories
and initializes the AWS SDK, which is shut down again when the engine unloads
its nodes.

<!-- ROCKETRIDE:GENERATED:PARAMS START -->
<!-- Generated by nodes:docs-generate. Do not edit by hand. -->

## Schema

### AWS S3 (`services.aws.json`)

| Field | Type | Description | Default |
|---|---|---|---|
| `Pipe.exclude` |  | Example path: [bucket_name]/[folder_name]/* or [bucket_name]/* |  |
| `Pipe.include` |  | Example path: [bucket_name]/[folder_name]/* or [bucket_name]/* |  |
| `aws.source.parameters` |  | **Parameters** |  |
| `exclude` |  | This path defines the paths excluded for Scan, File Signature, Index, Classify, and OCR.<br/>Example Path for AWS S3: BucketName/FolderName/* |  |
| `exclude.path` |  | This path defines the paths excluded for Scan, File Signature, Index, Classify, and OCR.<br/>Example Path for AWS S3: BucketName/FolderName/* |  |
| `include` |  | This path defines the paths included for Scan, File Signature, Index, Classify, and OCR.<br/>Example Path for AWS S3: BucketName/FolderName/* or BucketName/* |  |
| `include.path` |  | This path defines the paths included for Scan, File Signature, Index, Classify, and OCR.<br/>Example Path for AWS S3: BucketName/FolderName/* or BucketName/* |  |

### Object Storage (`services.objstore.json`)

| Field | Type | Description | Default |
|---|---|---|---|
| `Pipe.exclude` |  | Example path: [bucket_name]/[folder]/* |  |
| `Pipe.include` |  | Example path: [bucket_name]/[folder]/* |  |
| `exclude` |  | This path defines the paths excluded for Scan, File Signature, Index, Classify, and OCR.<br/>Example Path for AWS S3: BucketName/FolderName/* |  |
| `exclude.path` |  | This path defines the paths excluded for Scan, File Signature, Index, Classify, and OCR.<br/>Example Path for AWS S3: BucketName/FolderName/* |  |
| `include` |  | This path defines the paths included for Scan, File Signature, Index, Classify, and OCR.<br/>Example Path for AWS S3: BucketName/FolderName/* or BucketName/* |  |
| `include.path` |  | This path defines the paths included for Scan, File Signature, Index, Classify, and OCR.<br/>Example Path for AWS S3: BucketName/FolderName/* or BucketName/* |  |
| `objstore.source.parameters` |  | **Parameters** |  |

## Source

[<svg viewBox="0 0 16 16" width="15" height="15" fill="currentColor" aria-hidden="true" style="vertical-align:-0.15em;margin-right:0.35em"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"/></svg> View source](https://github.com/rocketride-org/rocketride-server/tree/develop/nodes/src/nodes/objstore)
<!-- ROCKETRIDE:GENERATED:PARAMS END -->
