Rclone
is an open source command line program to sync files and
directories to and from cloud storage systems. It aims to be "rsync
for cloud storage".
This recipe describes how to use rclone with MinIO Server.
First install MinIO Server from min.io.
Next install Rclone from rclone.org.
When it configures itself MinIO will print something like this
Endpoint: http://10.0.0.3:9000 http://127.0.0.1:9000 http://172.17.0.1:9000
AccessKey: USWUXHGYZQYFYFFIT3RE
SecretKey: MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
Region: us-east-1
Browser Access:
http://10.0.0.3:9000 http://127.0.0.1:9000 http://172.17.0.1:9000
Command-line Access: https://docs.min.io/docs/minio-client-quickstart-guide
$ mc config host add myminio http://10.0.0.3:9000 USWUXHGYZQYFYFFIT3RE MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
Object API (Amazon S3 compatible):
Go: https://docs.min.io/docs/golang-client-quickstart-guide
Java: https://docs.min.io/docs/java-client-quickstart-guide
Python: https://docs.min.io/docs/python-client-quickstart-guide
JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
You now need to configure those details into rclone.
Run Rclone config
, create a new remote called minio
(or anything
else) of type S3
and enter the details above something like this:
(Note that it is important to put the region in as stated above.)
env_auth> 1
access_key_id> USWUXHGYZQYFYFFIT3RE
secret_access_key> MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
region> us-east-1
endpoint> http://10.0.0.3:9000
location_constraint>
server_side_encryption>
Which makes the config file look like this
[minio]
type = s3
env_auth = false
access_key_id = USWUXHGYZQYFYFFIT3RE
secret_access_key = MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03F
region = us-east-1
endpoint = http://10.0.0.3:9000
location_constraint =
server_side_encryption =
Here are some example commands
List buckets
rclone lsd minio:
Make a new bucket
rclone mkdir minio:bucket
Copy files into that bucket
rclone copy /path/to/files minio:bucket
Copy files back from that bucket
rclone copy minio:bucket /tmp/bucket-copy
List all the files in the bucket
rclone ls minio:bucket
Sync files into that bucket - try with --dry-run
first
rclone --dry-run sync /path/to/files minio:bucket
Then sync for real
rclone sync /path/to/files minio:bucket
See the Rclone web site for more examples and docs.