Set-AzStorageBlobContent 采用要上传到云的文件位置。有没有办法可以将 System.IO.Stream 传递给 PowerShell 中的块 Blob?
问问题
149 次
1 回答
1
我想出了办法。这有点简单,感谢https://microsoft.github.io/AzureTipsAndTricks/blog/tip76.html。
In 能够直接将 zip 文件的内容提取到 Azure 存储块 blob 中,而无需在本地提取文件。可以增强以下示例以递归上传 zip 文件中的所有条目。
Import-Module -Name Az
$ZipArchive = [System.IO.Compression.ZipFile]::OpenRead("C:\...\temp.zip");
$ZipEntry = $ZipArchive.Entries[0]
$DeflateStream = $ZipEntry.Open();
$storageAccountName= 'storageAccountName'
$containerName= 'containerName'
Get-AzSubscription | Select-Object -First 1 | Set-AzContext
$StorageAccount = Get-AzStorageAccount -ResourceGroupName ResourceGroupName | Where-Object{$_.StorageAccountName -match $storageAccountName}
$StorageContext = New-AzStorageContext -StorageAccountName $StorageAccount.StorageAccountName -StorageAccountKey (Get-AzStorageAccountKey -ResourceGroupName $StorageAccount.ResourceGroupName -Name $StorageAccount.StorageAccountName | select -First 1 ).Value
$Container = Get-AzStorageContainer -Name $containerName -Context $StorageContext
$BlockBlob = $Container.CloudBlobContainer.GetBlockBlobReference("Temp/temp.pdf")
$BlockBlob.UploadFromStream($DeflateStream);
于 2019-08-30T18:16:43.027 回答