在 FTP 客户端失败/从前一点断开连接后,是否可以使用内置的 Windows FTP 客户端恢复上传?
例如,如何实现以下场景:内置 FTP 客户端上传 40% 的文件,连接丢失,客户端重新连接并开始上传其余 60% 的文件?其他 FTP 客户端能够执行此操作,但我仅限于仅使用 Windows 安装后可用的软件。
不,Windows 命令行ftp.exe不支持传输恢复。
但是您可以自动下载任何支持自动恢复的小型 3rd 方便携式命令行 FTP 客户端并使用它。
例如,以下 PowerShell 代码下载WinSCP .NET 程序集包,将其解压缩并开始可恢复上传:
$winscp_assembly = "WinSCPnet.dll"
if (Test-Path $winscp_assembly)
{
Write-Host "WinSCP already downloaded"
}
else
{
$webclient = New-Object System.Net.WebClient
$winscp_version = "5.19.2"
$winscp_archive = "WinSCP-$winscp_version-Automation.zip"
Write-Host "Downloading $winscp_archive ..."
$url =
"https://sourceforge.net/projects/winscp/files/WinSCP/" +
$winscp_version + "/" + $winscp_archive + "/download"
$webclient.DownloadFile($url, $winscp_archive)
Write-Host "Done"
Write-Host "Extracting $winscp_archive ..."
$shell = New-Object -ComObject Shell.Application
$current_path = [string](Resolve-Path ".")
$winscp_archive_path = [string](Resolve-Path $winscp_archive)
$winscp_archive_folder = $shell.NameSpace($winscp_archive_path)
$current_folder = $shell.NameSpace($current_path)
# SHCONTCH_NOPROGRESSBOX or SHCONTCH_RESPONDYESTOALL
$copy_options = 4 -bor 16
$current_folder.CopyHere($winscp_archive_folder.Items(), $copy_options)
Write-Host "Done"
}
Add-Type -Path $winscp_assembly
$ftp_host = "ftp.example.com"
$ftp_path = "/target/path/"
$upload_path = "C:\big\file.dat"
Write-Host "Starting resumable upload of $upload_path to $ftp_host ..."
# Setup session options
$sessionOptions = New-Object WinSCP.SessionOptions
$sessionOptions = New-Object WinSCP.SessionOptions -Property @{
Protocol = [WinSCP.Protocol]::Ftp
HostName = $ftp_host
UserName = "username"
Password = "password"
}
$session = New-Object WinSCP.Session
$session.Open($sessionOptions)
$session.PutFiles($upload_path, $ftp_path).Check()
Run Code Online (Sandbox Code Playgroud)
要运行 PowerShell 脚本 ( upload.ps1),请使用:
powershell.exe -File upload.ps1 -ExecutionPolicy Bypass
Run Code Online (Sandbox Code Playgroud)
(我是 WinSCP 的作者)
另一种选择是使用FtpWebRequest.
您可以再次使用FtpWebRequest来自 PowerShell 脚本的 。请参阅使用 PowerShell 通过 FTP 上传文件。
| 归档时间: |
|
| 查看次数: |
1880 次 |
| 最近记录: |