Powershell 3:防止 webrequest 过度使用内存
Powershell 3: preventing excessive memory usage for webrequest
我写了一个简短的脚本让我下载文件。
Invoke-WebRequest -Uri $r2.Forms.Action -WebSession $myWebSession -OutFile $destination$filename
整个下载都缓冲在内存中,这对于较大的文件来说显然不是最佳选择。我想知道(我找不到)一种方法/ 属性 来防止这种情况并直接流式传输到磁盘。类似于 .NET 中的 AllowWriteStreamBuffering。
感谢任何帮助!
似乎唯一的方法是使用 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
我写了一个简短的脚本让我下载文件。
Invoke-WebRequest -Uri $r2.Forms.Action -WebSession $myWebSession -OutFile $destination$filename
整个下载都缓冲在内存中,这对于较大的文件来说显然不是最佳选择。我想知道(我找不到)一种方法/ 属性 来防止这种情况并直接流式传输到磁盘。类似于 .NET 中的 AllowWriteStreamBuffering。
感谢任何帮助!
似乎唯一的方法是使用 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