S3
#The S3 integration enables backup and restoration of S3 buckets through S3-compatible APIs. All bucket contents including objects, metadata, and folder hierarchies are captured and stored in a Kloset store with encryption and deduplication.
The S3 integration provides three connectors:
| Connector type | Description |
|---|---|
| Source connector | Back up S3 buckets into a Kloset store. |
| Storage connector | Use S3-compatible storage as a Kloset store backend. |
| Destination connector | Restore bucket contents from a Kloset store back to S3. |
Installation
#The S3 package can be installed using pre-built binaries or compiled from source.
Pre-compiled packages are available for common platforms and provide the simplest installation method.
Logging In
Pre-built packages require Plakar authentication. See Logging in to Plakar for details.
Install the S3 package:
$ plakar pkg add s3Verify installation:
$ plakar pkg listSource builds are useful when pre-built packages are unavailable or when customization is required.
Prerequisites:
- Go toolchain compatible with your Plakar version
Build the package:
$ plakar pkg build s3A package archive will be created in the current directory (e.g., s3_v1.0.0_darwin_arm64.ptar).
Install the package:
$ plakar pkg add ./s3_v1.0.0_darwin_arm64.ptarVerify installation:
$ plakar pkg listTo list, upgrade, or remove the package, see managing packages guide.
Configuration
#Configuration options
#These options apply to all three connectors (source, storage, destination).
| Option | Required | Description |
|---|---|---|
location |
Yes | S3 endpoint and bucket including region (format: s3://s3.region.amazonaws.com/bucket) |
access_key |
Yes | S3 Access Key ID. |
secret_access_key |
Yes | S3 Secret Access Key. |
passphrase |
No | Encryption passphrase. If not set, Plakar will prompt interactively. Source connector only. |
use_tls |
No | Enable TLS. Recommended for all internet-facing connections. |
Source connector
#The source connector retrieves objects from S3 buckets and stores them in a Kloset store with encryption and deduplication.
flowchart LR subgraph Source["S3 Bucket"] FS["Objects"] end subgraph Plakar["Plakar"] Connector["Retrieve objects via
S3 API"] Transform["Encrypt & deduplicate"] Connector --> Transform end Source --> Connector Store["Kloset Store"] Transform --> Store
Register the source and run a backup:
$ plakar source add my-s3-bucket \
location=s3://<S3_ENDPOINT>/<BUCKET_NAME> \
access_key=<YOUR_ACCESS_KEY_ID> \
secret_access_key=<YOUR_SECRET_ACCESS_KEY> \
use_tls=true
$ plakar at /var/backups backup "@my-s3-bucket"Storage connector
#The storage connector uses S3-compatible storage as the backend for a Kloset store. All Plakar data—snapshots, chunks, metadata—is stored as S3 objects.
flowchart LR subgraph Sources["Any Source"] FS["Data"] end subgraph Plakar["Plakar"] Transform["Encrypt & deduplicate"] Connector["Store via
S3 API"] Transform --> Connector end Sources --> Transform subgraph Storage["S3 Storage"] Store["Kloset Store"] end Connector --> Store
Register the store, initialize it, and run a backup:
$ plakar store add my-s3-store \
location=s3://<S3_ENDPOINT>/<BUCKET_NAME> \
access_key=<YOUR_ACCESS_KEY_ID> \
secret_access_key=<YOUR_SECRET_ACCESS_KEY> \
use_tls=true
$ plakar at "@my-s3-store" create
$ plakar at "@my-s3-store" backup /var/wwwDestination connector
#Restores objects from a Kloset store back to an S3 bucket.
flowchart LR Store["Kloset Store"] subgraph Plakar["Plakar"] Transform["Decrypt & reconstruct"] Connector["Restore via
S3 API"] Transform --> Connector end Store --> Transform subgraph Destination["S3 Bucket"] FS["Objects"] end Connector --> Destination
Register the destination and restore a snapshot:
$ plakar destination add my-s3-restore \
location=s3://<S3_ENDPOINT>/<BUCKET_NAME> \
access_key=<YOUR_ACCESS_KEY_ID> \
secret_access_key=<YOUR_SECRET_ACCESS_KEY> \
use_tls=true
$ plakar at /var/backups restore -to "@my-s3-restore" <snapshot_id>