我想按 sftp 列出图片并保存此列表,以便其他脚本可以进一步处理它。
不幸的是,那里还有很多其他文件,所以我需要确定哪些是图像。我正在过滤掉文件扩展名错误的所有内容,但我想更进一步检查文件的内容。
在本地计算机上下载所有内容以使用 文件--mime-type 进行检查太慢了。有没有办法在 下载之前检查远程SFTP 上的文件的MIME类型?
答案 0 :(得分:2)
我们找到了一种方法,只下载前64个字节。它比下载整个文件快得多,但仍足以看它是否看起来像一个图像:
curl "sftp://sftp.example.com/path/to/file.png" -u login:pass -o img.tmp -r 0-64
file --mime-type img.tmp
答案 1 :(得分:0)
SFTP版本6及更新版本支持MIME类型。
大多数SFTP客户端和服务器,包括最广泛使用的OpenSSH,仅支持SFTP版本3.
即使我知道支持SFTP版本6的服务器,如Bitvise或proftpd / mod_sftp,也不支持“MIME类型”属性。
因此,虽然理论上可以通过SFTP确定远程文件的MIME类型,但实际上,您将无法执行此操作。
答案 2 :(得分:0)
您可以使用ssh远程运行任何命令:
ssh <destination> '<command_to_run>'
在这种情况下,这将是:
ssh <remote_machine_name_or_ip_address> 'file --mime-type ./*'