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§
- prelude
- 将所有 Trait 全部重新导出,方便统一导入
Structs§
- EtagV1
- Etag V1 计算器,使用 Etag V1 算法计算七牛云存储上文件的 HASH 值
- EtagV2
- Etag V2 计算器,使用 Etag V2 算法计算七牛云存储上文件的 HASH 值
- Generic
Array - Struct representing a generic array -
GenericArray<T, N>
works like [T; N]
Enums§
- Etag
- 兼容 Etag 兼容计算器,可以为不同版本的 Etag 提供相同的接口
- Etag
Version - Etag 版本
Constants§
- ETAG_
SIZE - Etag 字符串固定长度
Traits§
- Fixed
Output - Trait for returning digest result with the fixed size
- Reset
- Trait for resetting hash instances
- Update
- Trait for updating digest state with input data.
Functions§
- async_
etag_ of - 异步读取 reader 中的数据并计算它的 Etag V1,生成结果
- async_
etag_ to_ buf - 异步读取 reader 中的数据并计算它的 Etag V1,生成结果到指定的缓冲中
- async_
etag_ with_ parts - 根据给出的数据块尺寸,异步读取 reader 中的数据并计算它的 Etag V2,生成结果
- async_
etag_ with_ parts_ to_ buf - 根据给出的数据块尺寸,异步读取 reader 中的数据并计算它的 Etag V2,生成结果到指定的数组中
- etag_of
- 读取 reader 中的数据并计算它的 Etag V1,生成结果
- etag_
to_ buf - 读取 reader 中的数据并计算它的 Etag V1,生成结果到指定的缓冲中
- etag_
with_ parts - 根据给出的数据块尺寸,读取 reader 中的数据并计算它的 Etag V2,生成结果
- etag_
with_ parts_ to_ buf - 根据给出的数据块尺寸,读取 reader 中的数据并计算它的 Etag V2,生成结果到指定的数组中