我正在尝试使用PowerShell将非常大的VM映像(5-15 Gb大小)上传到HTTP服务器.
我尝试使用那几个方法(这里链接到net.WebClient.UploadFile 脚本和脚本与Invoke-webRequest)
它适用于小于2GB的文件,但不适用于大于此值的文件.
我正在尝试直接使用httpWebRequest但我无法投入FileStream其中.
所以我的问题是:如何将文件流放入webrequest?
或者更一般地说:如何使用PowerShell通过http上传大文件?
$Timeout=10000000;
$fileName = "0.iso";
$data = "C:\\$fileName";
$url = "http://nexus.lab.local:8081/nexus/content/sites/myproj/$fileName";
#$buffer = [System.IO.File]::Open("$data",[System.IO.Filemode]::Open, [System.IO.FileAccess]::Read) #Err Cannot convert argument "buffer", with value: "System.IO.FileStream", for "Write" to type "System.Byte[]":
#$buffer = gc -en byte $data # too much space in memory
$buffer = [System.IO.File]::ReadAllBytes($data) #Limit 2gb
[System.Net.HttpWebRequest] $webRequest = [System.Net.WebRequest]::Create($url)
$webRequest.Timeout = $timeout
$webRequest.Method = "POST"
$webRequest.ContentType = "application/data"
#$webRequest.ContentLength = $buffer.Length;
$webRequest.Credentials = New-Object System.Net.NetworkCredential("admin", …Run Code Online (Sandbox Code Playgroud)