可能比您正在寻找的级别要低一些,但cURL在很大程度上满足您的要求。
- 虽然它主要是一个供其他软件使用的库,但它有一个命令行 UI,实际上对于大多数任务来说相当容易使用。
- 它是 100% FOSS(使用许可许可证)。
- 它支持完全任意的 HTTP 请求类型。显然 PUT 和 DELETE 按要求进行,还有更奇特的东西,如 OPTIONS、TRACE、PATCH 和各种 WebDAV 扩展(实际上几乎任何东西,只要它不需要在请求中封装连接)。
- 它还有许多其他有用的功能,例如直接支持大多数身份验证类型、指定任意请求标头、为请求提供一组特定的 HTTP cookie、HTTP/2、TLS 和一大堆其他东西(包括一个几乎滑稽的数字HTTP 以外的协议)。
- 它很小(主要是因为它没有图形用户界面)。
使用 PUT 上传本地文件的示例命令(不进行任何身份验证,但应该可以正常使用 HTTPS):
curl -X PUT --data-binary @/some/local/file.txt -o response.txt https://example.com/file.txt
这将获取 的内容/some/local/file.txt
,将其用作 PUT 请求的请求主体https://example.com
,将响应保存到response.txt
本地系统上,并显示一个不错的上传进度表。
重要的是要注意,无论您为此使用什么工具,Web 服务器都必须支持它。在大多数情况下,这意味着该服务器的管理员必须明确启用对它的支持,但即便如此,它在所有服务器上的行为并不总是完全相同。
此外,您可能想研究 WebDAV,它涵盖了这一点,在所有主要平台上都具有良好的客户端支持,并提供了更多功能(例如创建目录)。
HTTP PATCH 请求也可能令人感兴趣,它允许您上传补丁(以未指定的格式)以就地修改资源,而无需重新上传整个资源。不过,对它的支持甚至比 WebDAV 或 PUT 和 DELETE 还要低劣。