【发布时间】:2020-02-29 05:21:40
【问题描述】:
我可以使用以下 curl 命令成功下载文件。
curl -u user:pass -k "https://website.com/remote/path/remotefile.zip" -o /local/path/file.zip
理想情况下,我想通过以编程方式获取最新文件来自动执行此操作。每天可以上传多个文件。每个文件的名称都以时间戳为前缀,目录中有多个文件。
目录内容和文件名示例:
20191102230243952_Appended-Constant_Filename.zip
20191103040135476_Appended-Constant_Filename.zip
20191103100132360_Appended-Constant_Filename.zip
更新 @FedonKadifeli 的评论。如果对包含文件的目录发出请求,则会返回列出文件的 HTML 输出。
curl -u user:pass -k "https://website.com/remote/path"
HTML 输出
[...]
<table>
<tr>
<td align="left">
<a href="/remote/path/20191102230243952_Appended-Constant_Filename.zip"><tt>20191102230243952_Appended-Constant_Filename.zip</tt></a>
</td>
<td align="right"><tt>66.6 kb</tt></td>
<td align="right"><tt>Sun, 03 Nov 2019 06:02:44 GMT</tt></td>
</tr>
<tr bgcolor="#eeeeee">
<td align="left">
<a href="/remote/path/20191103040135476_Appended-Constant_Filename.zip"><tt>20191103040135476_Appended-Constant_Filename.zip</tt></a>
</td>
<td align="right"><tt>66.6 kb</tt></td>
<td align="right"><tt>Sun, 03 Nov 2019 12:01:35 GMT</tt></td>
</tr>
<tr>
<td align="left">
<a href="/remote/path/20191103100132360_Appended-Constant_Filename.zip"><tt>20191103100132360_Appended-Constant_Filename.zip</tt></a>
</td>
<td align="right"><tt>66.5 kb</tt></td>
<td align="right"><tt>Sun, 03 Nov 2019 18:01:32 GMT</tt></td>
</tr>
</table>
[...]
【问题讨论】:
-
这似乎只有在您可以列出
path文件夹的内容时才有可能。对 URLhttps://website.com/remote/path/的请求是否返回正确的文件列表? -
@FedonKadifeli 它返回目录中所有文件的 HTML 列表。请参阅问题更新。
-
有些东西不匹配。该文件名为 /remote/path/remotefile.zip,但清单显示 /remote/path20191103040135476_Appended-Constant_Filename.zip。
-
如果服务器运行的是 Apache,您可能会在列表中添加其他选项:?C=N(按名称排序)和 F=0(简单列表,无 HTML),这可以简化解析显着。
-
@dash-o 这是我在清理路径详细信息时的拼写错误,已更新。感谢您提供有关添加 Apache 选项的建议。我可以在浏览器中点击 URL 并尝试添加像 website.com/remote/path?C=N;F=0 这样的参数,但输出是一样的。