Windows Azure Blob 存储使用指南
1. 操作成功消息与 ETag 头
在进行操作时,首先会收到一个 2xx 消息,表明操作成功。ETag 头指定了服务器所看到的 blob 的“版本”,在后续请求中可以使用这个 ETag。响应最后会包含一些标准的 HTTP 头。
2. MD5 哈希
2.1 网络数据损坏问题
网络情况复杂,即使有 TCP、HTTP 的握手和错误检查机制,数据包在传输过程中仍可能损坏。网络驱动、路由器、交换机等都可能是导致数据损坏的原因。
2.2 MD5 哈希的作用
为了防止数据损坏,需要发送内容的哈希值到接收端。接收端计算接收到数据的哈希值,并与请求中的哈希值进行比较。如果数据或哈希值在传输中损坏,检查将失败,发送方会收到通知。
2.3 Windows Azure 中的 MD5 哈希使用方式
在 Windows Azure 存储中,使用 MD5 进行哈希计算,有以下两种使用方式:
- 上传 blob 时,可以添加包含 blob 的 MD5 哈希的 Content - MD5 头。blob 服务器会计算接收到数据的 MD5 哈希,如果不匹配则返回错误(BadRequest)。
- 创建或覆盖 blob 时,服务器会发送接收到数据的 MD5 哈希,客户端可以验证该哈希是否与数据的哈希匹配。
2.4 MD5 的安全性
虽然 MD5 被认为“不安全”,因为研究表明可能产生哈希值相同的两个数据(碰撞),但在 Windows Azure 中,使用 MD5 只是为了防止网络数据损坏,产