数据备份与 SQL Azure 数据库使用指南
1. 数据备份流程
1.1 数据上传逻辑
在数据上传过程中,根据数据大小会有不同的处理方式。若输入数据小于 4 MB,代码会进行一个长顺序请求;若大于 4 MB,代码会调用辅助函数将数据分割并上传为块。以下是相关代码示例:
queue.join() # Now upload block list resp = conn.put_block_list("enc", filename, \ blocklist, "application/octet-stream") return resp数据上传的流程如下:
graph LR A[输入数据] --> B{数据大小 < 4 MB?} B -- 是 --> C[长顺序请求] B -- 否 --> D[分割数据为块] D --> E[上传块] C --> F[上传完成] E --> F1.2 数据块处理
upload_archive_using_blocks函数会将输入数据分割成 4 MB 的块,块 ID 使用数据的 SHA - 256 哈希值。每个块会被添加到一个队列中,由线程池进行处理。由于 Python 没有内置的线程池实现,代码中包含了一个简单的线程池(位于task.py