gpt4 book ai didi

azure - 提取存储 blob 内的文件

转载 作者:行者123 更新时间:2023-12-03 06:16:31 45 4
gpt4 key购买 nike

我有一个 500GB 的 VHD,它被压缩为 16GB 的 zip 文件。由于公司计算机上的此 VHD 较大,我无法使用 AzCopy 解压缩 VHD 并将其上传到 Azure Blob。我需要一种方法将 zip 上传到 Blob 存储并提取 VHD 以从镜像创建托管磁盘。

当我看到 PowerShell 可用时,我认为存储容器将位于我的帐户中,类似于层次结构,因此我只需导航到存储目录并运行解压缩命令或脚本即可。这似乎是不正确的,我无法从 PowerShell 执行命令来解压缩 blob 存储中的文件。

假设500GB的文件无法压缩,并且您必须上传+解压16GB的zip文件,这如何实现?

最佳答案

Need of a way to upload the zip to Blob storage and extract the VHD to create a Managed Disk from the image.

据我所知,Azure Blob 存储不会为您执行解压缩过程。您必须自己处理这个问题。

您需要从 blob 存储下载 zip 文件夹并将其解压缩到那里,然后上传文件。

要解决此问题,您需要使用以下命令将其作为 zip 文件夹上传到 Blob 存储:

Connect-AzAccount -SubscriptionId "Your-subscriptionid"
$ctx = New-AzStorageContext -StorageAccountName "Your-storage-account" -UseConnectedAccount
Set-AzStorageBlobContent -Container "your-container-name" -Context $ctx -File "C:\Users\v-vsettu\Downloads\abcd.zip" -Blob "wxyz.zip"

上传后,您可以使用以下 Python 代码通过解压缩文件来上传文件,作为示例,我使用了 1GB 文件。

代码:

from azure.storage.blob import BlobServiceClient
import zipfile
import os
import time

blob_service_client = BlobServiceClient.from_connection_string("your-connection-string")
dir_path = r"your-extractionfolder"

container_client = blob_service_client.get_container_client("test2")
blob_client = container_client.get_blob_client("wxyz.zip")
#Downloading Zip to local system
with open("sample1.zip", "wb") as my_blob:
download_stream = blob_client.download_blob()
my_blob.write(download_stream.readall())

#Extracting Zip Folder to path
with zipfile.ZipFile("sample1.zip", 'r') as zip_ref:
zip_ref.extractall(dir_path)

#Reading and uploading Files to Storage account
fileList = os.listdir(dir_path)
for filename in fileList:
container_client_upload = blob_service_client.get_container_client("test")
blob_client_upload = container_client_upload.get_blob_client(filename)
start=time.time()
f = open(dir_path+'\\'+filename, 'r')
byt = f.read()
blob_client_upload.upload_blob(byt)
end=time.time()
print("Time taken to upload blob:", end - start, "secs")

输出: enter image description here

门户: enter image description here

引用:另外,你可以引用这个unzip a file from blob storage to File share without using windows API - Microsoft Q&A

关于azure - 提取存储 blob 内的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76212555/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com