Skip to content

wecomopen/file_block_digest

Repository files navigation

描述

上传大文件(最高支持20G)至企业微信的微盘,需要开发者在本地对大文件进行分块以及计算分块的累积sha值(签名)。

分块的累积sha值计算过程如下:

  • 将要上传的文件内容,按2M分块;
  • 对每一个分块,依次sha1_update;
  • 每次update,记录当前的state,转成16进制,作为当前块累积sha值
  • 当为最后一块(可能小于2M),update完再sha1_final得到的sha1值(即整个文件的sha1),作为最后一块累积sha值

以上过程得到的sha值,保持顺序依次放到数组,作为file_upload_init接口的block_sha参数输入。

使用

sha1.* 可直接替换成其他sha1的实现,如openssl sha1。

linux下执行以下命令,生成 test_file_block_digest 二进制工具

aclocal

automake --add-missing

./configure CXX=g++ CPPFLAGS=-std=c++11

make

或直接使用g++编译得到 test_file_block_digest 二进制工具

g++ -std=c++11 file_block_digest.h file_block_digest.cpp sha1.h sha1.cpp test_file_block_digest.cpp -o test_file_block_digest

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published