#nft #upload #storage #file-upload #storage-service #download #encryption

nft_storage_core

为 NFT.storage 定制的 Rust 客户端,提供直观的 API 封装,以增强与服务交互。它支持存储 ERC-1155 兼容的 NFT,具有可插拔加密模块的加密文件上传,资产管理以及去中心化身份(DID)处理。客户端还支持加密下载和解密,确保安全的数据处理。它采用异步能力,以便能够无缝集成到现代 Rust 异步生态系统中。

2 个不稳定版本

0.2.0 2023 年 12 月 25 日
0.1.0 2023 年 11 月 3 日

#37 in #storage-service

41 次每月下载
用于 nft_storage_cli

MIT 许可证

3.5MB
2.5K SLoC

nft.storage-rs

Crates.io Documentation Build Status

nft.storage-rs 是一个 Rust 客户端,可以轻松将文件上传到 nft.storage 服务。

功能

  • 上传文件、目录或 JSON 对象

安装

将以下内容添加到您的 Cargo.toml

[dependencies]
nft.storage-rs = "0.1.0"

运行

$ cargo build

用法

以下是一个快速示例

use std::path::PathBuf;

use nft_storage_core::{encryptor::plugins::aes::AesEncryptor, NftStorageApi, NftStorageCore};

#[tokio::main]
async fn main() {
    let aes = AesEncryptor::generate_key().unwrap();

    let encryptor = Box::new(aes);
    // If pass none, use NFT_STORAGE_API_KEY envrioment variable.
    let api_key = Some("<FILL ME NFT_STORAGE_API_KEY>".to_string());
    let client = NftStorageCore::try_new(api_key, encryptor).unwrap();
    
    let path = vec![PathBuf::from("test.txt")];
    let resp = client.upload(&path, None).await.unwrap();
    println!("{}", serde_json::to_string_pretty(&resp).unwrap());
}

有关更多示例,请参阅 examples/ 目录。

文档

有关完整文档,请访问 docs.rs/nft.storage-rs

贡献

  1. 分叉它!
  2. 创建您的功能分支:git checkout -b my-new-feature
  3. 提交您的更改:git commit -am 'Add some feature'
  4. 推送到分支:git push origin my-new-feature
  5. 提交一个 pull 请求。

许可证

本项目采用 MIT 许可证 - 有关详细信息,请参阅 LICENSE 文件。

依赖项

~7–20MB
~304K SLoC