Integration Package: iCloud Drive
Introduction
This integration allows you to snapshot and restore iCloud Drive data using Plakar to store it in a Kloset store, while minimizing storage usage and ensuring strong data security. It includes a Storage Connector that lets you persist snapshots to iCloud Drive itself, either from iCloud Drive or from other sources. A Viewer is also provided to inspect, search, and restore snapshots without requiring full extraction.
Use cases:
- Cold backup of iCloud Drive folders
- Long-term archiving and disaster recovery
- Portable export and vendor escape to other platforms
Target technologies:
- Supported versions: All iCloud Drive accounts supported by Rclone
- Supported editions: Personal and Business iCloud Drive
- System compatibility: macOS, Linux, Windows via Rclone
Requirements:
- Plakar version: >=1.0.3
- Integration version: 0.1.0
- iCloud Drive API credentials configured in Rclone
Architecture
Viewer (CLI/UI)
↑
iCloud Drive ← Source Connector → Kloset Store ←→ Storage Connector → iCloud Drive
↓
iCloud Drive ← Destination Connector → Other compatible resources
Components provided:
- Source Connector: extract data from iCloud Drive
- Destination Connector: restore snapshots to iCloud Drive
- Storage Connector: persist snapshots inside iCloud Drive as the backend
- Viewer: browse and search snapshots in UI/CLI
Installation
Prerequisites
This integration is distributed as an Rclone-powered connector. You only need Plakar and Rclone installed.
Install Rclone: https://rclone.org/install/ Configure your iCloud Drive remote: https://rclone.org/icloud/
1rclone config
After you can install it in a few seconds using Plakar’s built-in tooling.
Install the package:
Run the following command to install the integration:
1plakar pkg add rclone
This will generate a portable .ptar archive and install it in your Plakar environment.
Verify installation:
Check that the integration appears in your available connectors:
1plakar pkg
You should now see the rclone.
Configuration
Once Rclone is configured, import it into Plakar.
Source Connector
To import your rclone config as a source connector (to make backups), run:
1rclone config show myicloud | plakar source import
Destination Connector
To import your rclone config as a destination connector (to restore backups), run:
1rclone config show myicloud | plakar destination import
Storage Connector
To import your rclone config as a storage connector (to store backups in iCloud Drive), run:
1rclone config show myicloud | plakar store import
Replace
myicloud
with your Rclone remote name.
Usage
For the following examples, we will use @myicloud
as the Rclone remote name configured in Plakar.
First over all, we need to create a Kloset store to hold our snapshots:
1plakar at ./backup create
A folder named backup
will be created in the current directory, which will hold the snapshots.
Snapshot
To back up your iCloud Drive data in the recently created Kloset store, use the following command:
1plakar at ./backup backup @myicloud
The last line of the output will show the snapshot ID, which you can use to inspect or restore later.
Inspection
With Plakar, you can inspect your snapshots without extracting them. You can list or display the contents of the Kloset store:
1plakar at ./backup ls
2plakar at ./backup cat <snapshot-id>:/path/to/file
3plakar at ./backup ui
Restore
To restore a snapshot back to iCloud Drive, use the following command:
1plakar at ./backup restore -to @myicloud <snapshot-id>
This will restore the snapshot to your iCloud Drive account, making it available in the same structure as it was when backed up.
Storage
To use iCloud Drive as a storage backend, you have to create a Kloset store that uses the iCloud Drive remote.
1plakar at @myicloud create
This will create a Kloset store in your iCloud Drive cloud. And he will be used like any other Kloset store.
Integration-specific behaviors
Limitations
- iCloud Drive API has rate limits, heavy usage may require throttling
- Only the latest version of files are snapshotted
- Shared links and permissions are not preserved in snapshots
- No support for iCloud Photos