我计划使用 Azure Databox 将文件迁移到 Azure Blob 存储。 (作为参考,我计划使用 SMB 模型而不是 NFS/Rest)。
是在这种情况下计算的 Content-MD5,还是应该在恢复到 SA 后本地计算并显式设置 x-ms-blob-content-md5 blob 属性?
谢谢
使用 SMB 模型和 Azure Databox 将文件传输到 Azure Blob 存储时,传输过程中不会计算 Content-MD5。因此,建议在本地计算 Content-MD5,并在还原到存储帐户后显式设置 x-ms-blob-content-md5 blob 属性。
您可以使用以下代码在本地计算
Content-MD5
并使用 Azure 存储 Python SDK 设置 x-ms-blob-content-md5
blob 属性。
代码:
from azure.storage.blob import BlobServiceClient,ContentSettings
import hashlib
blob_service_client = BlobServiceClient.from_connection_string("<Your connection string>")
blob_client = blob_service_client.get_blob_client(container="sample",blob="vm1example.txt")
with open(r"/path/to/local/file", "rb") as f:
content = f.read()
content_md5 = hashlib.md5(content).digest()
content_settings = ContentSettings(content_md5=content_md5)
blob_client.set_http_headers(content_settings=content_settings)
输出: