Crates.io | duri |
lib.rs | duri |
version | 0.1.4 |
source | src |
created_at | 2021-08-08 14:47:21.969274 |
updated_at | 2023-05-25 19:13:23.501981 |
description | CLI tool to get data URI of a file |
homepage | https://github.com/hongquan/Duri |
repository | https://github.com/hongquan/Duri.git |
max_upload_size | |
id | 433166 |
size | 74,924 |
CLI tool to get data URI of a file.
Duri is written in Rust, so you can install it from crates.io:
cargo install duri
Read from file path:
duri image.png
Read from standard input:
echo image.png | duri -
To see more option, run with --help
:
duri --help
Assume that you need to upload file to a RESTful HTTP API. The HTTP API may require posted data to be JSON string and the file content to be in form of base64-encoded data URI.
You can combine Duri with jo to build JSON, like:
jo -d. file.name=image.png file.content=$(duri image.png)
then pass to a CLI HTTP client, like HTTPie:
jo -d. file.name=image.png file.content=$(duri image.png) | http example-api.vn/ekyc/
The duri
+ jo
combo will generate a JSON like
{
"file": {
"name": "image.png",
"content": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAAAAAA6fptVAAABI2..."
}
}
The string is passed to HTTPie via standard input and HTTPie will build a POST request with that JSON data.
Note that, if your HTTP API requires file to be in plain base64 string, not beginning with data:xxx
, you don't need Duri.
In that case, just use jo
alone, with its %
modifier:
jo -d. file.name=image.png file.content=%image.png | http example-api.vn/ekyc/