You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Posh-SSH获取SFTP服务器上文件的大小

获取SFTP文件大小(无需下载完整文件)

不用纠结Get-SFTPContent了——这个命令本来就是用来读取文件内容的,哪怕你只取它的.Length属性,它也会先把整个文件的字节数组加载到内存里,这就是为什么600MB的文件会出问题。其实Posh-SSH提供了更高效的方式,直接获取文件元数据就行:

正确的操作步骤

  1. 确保你已经通过New-SFTPSession建立了有效的SFTP会话(假设会话对象存在$session变量里)。
  2. 使用Get-SFTPItem命令获取文件的元信息,这个命令不会下载文件内容,只会拉取文件的属性数据:
# 替换成你的远程文件路径和会话ID
$remoteFilePath = "/path/to/your/largefile.ext"
$fileMetadata = Get-SFTPItem -SessionId $session.SessionId -Path $remoteFilePath

# 提取文件大小(单位:字节)
$fileSizeBytes = $fileMetadata.Length
  1. 如果需要转换成更易读的单位(比如MB),可以做个简单的计算:
$fileSizeMB = [math]::Round($fileSizeBytes / 1MB, 2)
Write-Host "目标文件大小:$fileSizeMB MB"

为什么这个方法更优

Get-SFTPItem本质是调用SFTP协议的STAT命令,只请求文件的属性信息(大小、修改时间、权限等),传输的数据量极小,完全不会占用大量内存来加载大文件内容,完美解决你的痛点。

内容的提问来源于stack exchange,提问作者Daniel Williams

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:00:42