w3s
A Rust crate to the easily upload file or directory to Web3.Storage with optional encryption and compression.
Usage
Add the following line to your Cargo.toml file:
w3s = { version = "0.2", features = ["all"] }
Example
To upload a single file:
let cid_result = upload
.await?;
To upload a directory:
let cid_result = upload_dir
.await?;
To download a compressed and encrypted file from IPFS gateway:
download
.await?;
Details about how to use
Please check the examples/ folder for different usage examples.
TODO
- Composable chain writer
- Gateways availability checker
- Single file upload though
api.web3.storage/upload - Single CAR upload though
api.web3.storage/car - Single file/CAR concurrent uploads
- Single file/CAR upload with compression
- Single file/CAR upload with encryption
- Auto split for >100MB single file upload
- CAR generation from single file
- Single file/car download
- Single file/car download with decompression and decryption
- Directory upload by CAR writer
- Directory upload with compression and encryption
- Code comments
- Documentation
Chain writer
The w3s crate contains several writers for the upload tasks. You can put writers according to your needs.
For example, if you'd like to compress and encrypt your data before upload:
Get the file -> compression writer -> encryption writer -> split writer -> upload writer
If you'd like to upload a CAR file:
Get the file -> CAR writer -> upload writer
If you'd like to encrypt the file before CAR it and upload:
Get the file -> encryption writer -> CAR writer -> upload writer