Apache Mina SSHd SFTP 服务器 - 提前获取正在上传的文件大小,以使用分段上传将其转发到 S3

Apache Mina SSHd SFTP server - get file size being uploaded in advance to forward it to S3 using multipart upload

据我了解 Apache MINA SSHd SFTP 服务器基于 here 的标准,这意味着没有必要发送有关预先传输的文件大小的信息(服务器不应该需要它) - 换句话说,在我们完成传输或使用的客户端将其作为文件元数据发送之前,我们永远不知道正在传输的文件的大小。这个对吗?如何读取此元数据?哪些 SFTP 客户端发送了这条信息?

这些问题对于解决将较大文件传输到用作 SFTP 底层存储的 S3 存储桶的问题很重要。如果您事先不知道大小,则无法进行分段上传,因此您必须首先完整存储文件,然后才执行实际上传 - 这会导致 SFTP 会话超时...

Which SFTP clients send that piece of information?

WinSCP 可以。

PSFTP/FileZilla 和 OpenSSH sftp 没有。

If you don't know the size in advance you cannot do the multipart upload

我认为你说的不对。 S3 CreateMultipartUpload 请求中没有关于实际文件大小或上传部分数量的任何内容。