Powershell 3:防止webrequest过多的内存使用

Hoa*_*oax 2 powershell powershell-3.0

我写了一个简短的脚本,让我下载一个文件.

Invoke-WebRequest -Uri $r2.Forms.Action -WebSession $myWebSession -OutFile $destination$filename
Run Code Online (Sandbox Code Playgroud)

整个下载缓冲在内存中,这对于较大的文件显然不是最佳的.我想知道(我找不到)一种方法/属性来防止这种情况并直接流式传输到磁盘.在.NET中的AllowWriteStreamBuffering行.

使用HttpWebRequest流式传输大型文件时出现内存异常

任何帮助表示赞赏!

Hoa*_*oax 5

似乎唯一的方法是使用WebClient

$webclient = new-object System.Net.WebClient
$webclient.Credentials = new-object System.Net.NetworkCredential($id, $p, $url)
$webclient.DownloadFile($r2, $destination+$tempfile)

#rename tempfile
$filename = $webclient.ResponseHeaders["Content-Disposition"].SubString($webclient.ResponseHeaders["Content-Disposition"].IndexOf("filename=")+10).Replace("`"", "");
Rename-Item $destination$tempfile -NewName $filename
Run Code Online (Sandbox Code Playgroud)