diff options
author | Alex Auvolat <alex@adnab.me> | 2022-02-02 10:07:26 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2022-02-02 10:07:26 +0100 |
commit | f5afa3d974e631de75c438cf2941a88440e2cf69 (patch) | |
tree | 9f9a89d10940757025b82ff8fdfbe3104c5f89a4 /content/documentation/connect/cli.md | |
parent | 921dd28f7499e46d78bd39d9ac7630efc50b64e8 (diff) | |
download | garagehq.deuxfleurs.fr-f5afa3d974e631de75c438cf2941a88440e2cf69.tar.gz garagehq.deuxfleurs.fr-f5afa3d974e631de75c438cf2941a88440e2cf69.zip |
Documentation from garage submodule
Diffstat (limited to 'content/documentation/connect/cli.md')
-rw-r--r-- | content/documentation/connect/cli.md | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/content/documentation/connect/cli.md b/content/documentation/connect/cli.md deleted file mode 100644 index 77d0647..0000000 --- a/content/documentation/connect/cli.md +++ /dev/null @@ -1,170 +0,0 @@ -+++ -title = "CLI tools" -weight = 20 -+++ - - -CLI tools allow you to query the S3 API without too many abstractions. -These tools are particularly suitable for debug, backups, website deployments or any scripted task that need to handle data. - -## Minio client (recommended) - -Use the following command to set an "alias", i.e. define a new S3 server to be -used by the Minio client: - -```bash -mc alias set \ - garage \ - <endpoint> \ - <access key> \ - <secret key> \ - --api S3v4 -``` - -Remember that `mc` is sometimes called `mcli` (such as on Arch Linux), to avoid conflicts -with Midnight Commander. - -Some commands: - -```bash -# list buckets -mc ls garage/ - -# list objets in a bucket -mc ls garage/my_files - -# copy from your filesystem to garage -mc cp /proc/cpuinfo garage/my_files/cpuinfo.txt - -# copy from garage to your filesystem -mc cp garage/my_files/cpuinfo.txt /tmp/cpuinfo.txt - -# mirror a folder from your filesystem to garage -mc mirror --overwrite ./book garage/garagehq.deuxfleurs.fr -``` - - -## AWS CLI - -Create a file named `~/.aws/credentials` and put: - -```toml -[default] -aws_access_key_id=xxxx -aws_secret_access_key=xxxx -``` - -Then a file named `~/.aws/config` and put: - -```toml -[default] -region=garage -``` - -Now, supposing Garage is listening on `http://127.0.0.1:3900`, you can list your buckets with: - -```bash -aws --endpoint-url http://127.0.0.1:3900 s3 ls -``` - -Passing the `--endpoint-url` parameter to each command is annoying but AWS developers do not provide a corresponding configuration entry. -As a workaround, you can redefine the aws command by editing the file `~/.bashrc`: - -``` -function aws { command aws --endpoint-url http://127.0.0.1:3900 $@ ; } -``` - -*Do not forget to run `source ~/.bashrc` or to start a new terminal before running the next commands.* - -Now you can simply run: - -```bash -# list buckets -aws s3 ls - -# list objects of a bucket -aws s3 ls s3://my_files - -# copy from your filesystem to garage -aws s3 cp /proc/cpuinfo s3://my_files/cpuinfo.txt - -# copy from garage to your filesystem -aws s3 cp s3/my_files/cpuinfo.txt /tmp/cpuinfo.txt -``` - -## `rclone` - -`rclone` can be configured using the interactive assistant invoked using `rclone config`. - -You can also configure `rclone` by writing directly its configuration file. -Here is a template `rclone.ini` configuration file (mine is located at `~/.config/rclone/rclone.conf`): - -```ini -[garage] -type = s3 -provider = Other -env_auth = false -access_key_id = <access key> -secret_access_key = <secret key> -region = <region> -endpoint = <endpoint> -force_path_style = true -acl = private -bucket_acl = private -``` - -Now you can run: - -```bash -# list buckets -rclone lsd garage: - -# list objects of a bucket aggregated in directories -rclone lsd garage:my-bucket - -# copy from your filesystem to garage -echo hello world > /tmp/hello.txt -rclone copy /tmp/hello.txt garage:my-bucket/ - -# copy from garage to your filesystem -rclone copy garage:quentin.divers/hello.txt . - -# see all available subcommands -rclone help -``` - -## `s3cmd` - -Here is a template for the `s3cmd.cfg` file to talk with Garage: - -```ini -[default] -access_key = <access key> -secret_key = <secret key> -host_base = <endpoint without http(s)://> -host_bucket = <same as host_base> -use_https = <False or True> -``` - -And use it as follow: - -```bash -# List buckets -s3cmd ls - -# s3cmd objects inside a bucket -s3cmd ls s3://my-bucket - -# copy from your filesystem to garage -echo hello world > /tmp/hello.txt -s3cmd put /tmp/hello.txt s3://my-bucket/ - -# copy from garage to your filesystem -s3cmd get s3://my-bucket/hello.txt hello.txt -``` - -## Cyberduck & duck - -TODO - - |