oli

What oli is

oli stands for OpenDAL Command Line Interface. It aims to provide a unified and user-friendly way to manipulate data stored in various storage services such as Object storage services(s3, azblob, gcs, minio, etc.), Key-Value services(Redis, etcd, TiKV, etc.), Filesystem-like service(HDFS, Azdls, etc.), and also all the other supported services.

How to use oli

oli provide basic sub-commands like oli ls, oli cat, oli stat, oli cp and oli rm, just like what you use on your local filesystem.

Install oli

oli could be installed by cargo:

bash cargo install oli --all-features

cargo is the Rust package manager. cargo could be installed by following the Installation from Rust official website.

Configure oli Profile

oli requires a config file to work, it should be:

The content of config.toml should be follow these pattern:

```toml [profiles.] configurationkey1 = "value1" configurationkey2 = "value2"

[profiles.] configurationkey3 = "value3" configurationkey4 = "value4"

```

Here is an example of config.toml:

```toml [profiles.s3] type = "s3" root = "/assets" bucket = "" region = "" endpoint = "https://s3.amazonaws.com" accesskeyid = "" secretaccesskey = ""

[profiles.r2] type = "s3" root = "/assets" bucket = "" region = "auto" endpoint = "https://.r2.cloudflarestorage.com" accesskeyid = "" secretaccesskey = "" ```

For different services, you could find the configuration keys in the corresponding service document.

Example: use oli to upload file to AWS S3

text $ oli cp ./update-ecs-loadbalancer.json s3://update-ecs-loadbalancer.json $ oli ls s3:// fleet.png update-ecs-loadbalancer.json

Example: use oli copy file from S3 to R2

text $ oli cp s3://fleet.png r2://fleet.png $ oli ls r2:// fleet.png

Contribute to oli

Contribution is not only about code, but also about documentation, examples, and so on! 🚀

If you have any questions or suggestions about oli, please feel free to open an issue on GitHub.

As oli is a part of Apache OpenDAL, you should follow the CONTRIBUTION documentation. There are still lots works to do with oli, you could track them on this GitHub Issue.