Crate qiniu_etag

source ·
Expand description

qiniu-etag

七牛 Etag 计算器

负责根据输入的数据计算七牛 Etag,适配 V1 和 V2 版本,同时提供阻塞接口和异步接口(异步接口需要启用 async 功能)

七牛 Etag 文档:https://developer.qiniu.com/kodo/1231/appendix

代码示例

Etag V1 计算示例
use qiniu_etag::{EtagV1, prelude::*};

let mut etag_v1 = EtagV1::new();
etag_v1.update(b"etag");
assert_eq!(etag_v1.finalize_fixed().as_slice(), b"FpLiADEaVoALPkdb8tJEJyRTXoe_");
Etag V1 计算输入流示例
阻塞代码示例
use std::io::{copy, Cursor};
use qiniu_etag::{EtagV1, prelude::*};

let mut etag_v1 = EtagV1::new();
copy(&mut Cursor::new(b"etag"), &mut etag_v1)?;
assert_eq!(etag_v1.finalize_fixed().as_slice(), b"FpLiADEaVoALPkdb8tJEJyRTXoe_");
异步代码示例
use futures_lite::io::{copy, Cursor};
use qiniu_etag::{EtagV1, prelude::*};

let mut etag_v1 = EtagV1::new();
copy(&mut Cursor::new(b"etag"), &mut etag_v1).await?;
assert_eq!(etag_v1.finalize_fixed().as_slice(), b"FpLiADEaVoALPkdb8tJEJyRTXoe_");
Etag V2 计算示例
use qiniu_etag::{EtagV2, prelude::*};

let mut etag_v2 = EtagV2::new();
etag_v2.update(b"hello");
etag_v2.update(b"world");
assert_eq!(etag_v2.finalize_fixed().as_slice(), b"ns56DcSIfBFUENXjdhsJTIvl3Rcu");

Etag V2 计算输入流示例

与 V1 不同的是,Etag V2 要求传入数据的分块方式

阻塞代码示例
use qiniu_etag::etag_with_parts;
use std::io::Cursor;

assert_eq!(
    etag_with_parts(
        &mut Cursor::new(data_of_size(9 << 20)),
        &[1 << 22, 1 << 22, 1 << 20]
    )?,
    "ljgVjMtyMsOgIySv79U8Qz4TrUO4",
);
异步代码示例
use qiniu_etag::async_etag_with_parts;
use futures_lite::io::Cursor;

assert_eq!(
    async_etag_with_parts(
        &mut Cursor::new(data_of_size(9 << 20)),
        &[1 << 22, 1 << 22, 1 << 20]
    ).await?,
    "ljgVjMtyMsOgIySv79U8Qz4TrUO4",
);

Modules

将所有 Trait 全部重新导出,方便统一导入

Structs

Etag V1 计算器,使用 Etag V1 算法计算七牛云存储上文件的 HASH 值
Etag V2 计算器,使用 Etag V2 算法计算七牛云存储上文件的 HASH 值
Struct representing a generic array - GenericArray<T, N> works like [T; N]

Enums

兼容 Etag 兼容计算器,可以为不同版本的 Etag 提供相同的接口
Etag 版本

Constants

Etag 字符串固定长度

Traits

Trait for returning digest result with the fixed size
Trait for resetting hash instances
Trait for updating digest state with input data.

Functions

异步读取 reader 中的数据并计算它的 Etag V1,生成结果
异步读取 reader 中的数据并计算它的 Etag V1,生成结果到指定的缓冲中
根据给出的数据块尺寸,异步读取 reader 中的数据并计算它的 Etag V2,生成结果
根据给出的数据块尺寸,异步读取 reader 中的数据并计算它的 Etag V2,生成结果到指定的数组中
读取 reader 中的数据并计算它的 Etag V1,生成结果
读取 reader 中的数据并计算它的 Etag V1,生成结果到指定的缓冲中
根据给出的数据块尺寸,读取 reader 中的数据并计算它的 Etag V2,生成结果
根据给出的数据块尺寸,读取 reader 中的数据并计算它的 Etag V2,生成结果到指定的数组中

Type Definitions