Private/Copy-Binaries.ps1

function Copy-Binaries {
    param(
        $Destination
    )
    $ErrorActionPreference = "Stop"
    $destContext = New-AzStorageContext -StorageAccountName $Destination
    
    try { New-AzStorageContainer -Name $Script:destinationContainer -Context $destContext -Permission Blob }
    catch { 
        #fall throug
    }
    $releaseChannel = Get-DefaultReleaseChannel
    Start-AzStorageBlobCopy -AbsoluteUri $releaseChannel.latestVersionRef -DestContainer $Script:destinationContainer -DestBlob $Script:destinationBlob -DestContext $destContext -Force | Out-Null
}

function Get-DefaultReleaseChannel {
    $response = Invoke-WebRequest -Uri $Script:versionManifesUri -UseBasicParsing
    if ($response.StatusCode -lt 200 -or $response.StatusCode -ge 300) {
        throw "Could not accquire versionManifest"
    }
    $versionManifest = $response.Content | ConvertFrom-Json
    $defaultChannels = [array] $versionManifest.channels | Where-Object { $_.default }
    if ($defaultChannels.Count -eq 0) {
        throw "No default channel found"
    }
    if ($defaultChannels.Count -ge 2) {
        Write-Warning "Multiple default channels found"
    }
    return $defaultChannels[0]
}