oli
isoli
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.
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.
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.
oli
Profileoli
requires a config file to work, it should be:
~/.config/oli/config.toml
on Linux~/Library/Application Support/oli/config.toml
on macOSC:\Users\<UserName>\AppData\Roaming\oli\config.toml
on WindowsThe content of config.toml
should be follow these pattern:
```toml
[profiles.
[profiles.
```
Here is an example of config.toml
:
```toml
[profiles.s3]
type = "s3"
root = "/assets"
bucket = "
[profiles.r2]
type = "s3"
root = "/assets"
bucket = "
For different services, you could find the configuration keys in the corresponding service document.
oli
to upload file to AWS S3text
$ oli cp ./update-ecs-loadbalancer.json s3://update-ecs-loadbalancer.json
$ oli ls s3://
fleet.png
update-ecs-loadbalancer.json
oli
copy file from S3 to R2text
$ oli cp s3://fleet.png r2://fleet.png
$ oli ls r2://
fleet.png
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.