4个版本 (2个重大变更)
0.2.0 | 2022年1月4日 |
---|---|
0.1.1 | 2021年12月9日 |
0.1.0 | 2021年12月8日 |
0.0.0 | 2021年10月6日 |
在 网络编程 中排名第1055
每月下载量3,208次
在 8 个包中使用
72KB
1K SLoC
remotefs
~ 全功能文件传输客户端库(以及更多!) ~
由 @veeso 开发
当前版本:0.2.0 (04/01/2022)
关于remotefs ☁️
remotefs是一个库,提供了一种文件系统结构,用于与所有最常用的文件传输协议一起工作。这是通过一个名为RemoteFs
的特质来实现的,该特质公开了操作远程文件系统的方法。目前,该库公开了Sftp、Scp、Ftp和Aws-s3作为外部库的客户。
为什么选择remotefs ❓
您可能想知道选择remotefs的原因。第一个原因是提供一个轻松同时操作多个协议的方法。例如,在termscp中,这对我很实用。第二个原因是,通常,用户只需要实现一个简单的客户端来操作远程文件系统,他们不得不花费大量时间理解协议的工作原理,仅仅是为了完成一个任务。
使用remotefs,这个问题就不再存在了:您只需要配置连接到远程主机的选项,然后就可以像在您的pc上挂载一样处理远程文件系统。
特性 🎁
- 📁 不同的通信协议
- SFTP
- SCP
- FTP 和 FTPS
- Aws S3
- ✔️ 仅配置所需的:您可以只启用所需的客户端
- 🤖 易于扩展以支持新协议
- 🚀 易于设置
- 😄 无需了解底层协议的工作原理
开始 🚀
首先,将remotefs
添加到您的项目依赖项中
remotefs = "^0.2.0"
以下功能受支持
find
:启用find()
方法在RemoteFs
特性上(默认启用)no-log
:禁用日志。默认情况下,此库将通过log
包进行日志记录。
客户端库 🔌
为了使用现有的客户端库,您需要将其添加到您的 Cargo.toml 文件中,包括 remotefs
-
remotefs-aws-s3 = "^0.1.0"
-
remotefs-ftp = { version = "^0.1.0", features = [ "secure" ] }
-
remotefs-ssh = "^0.1.0"
远程文件系统 💾
如简介中所述,此库为每个客户端暴露了一个名为 RemoteFs
的特性。该特性通过所选客户端公开了几个用于操作远程文件系统的操作方法。
让我们简要地看看哪些方法可用
- connect:连接到远程主机。
- disconnect:从远程主机断开连接。
- is_connected:返回客户端是否连接到远程主机。
- append_file:将指定的缓冲区追加到指定的文件。
- append:以追加方式打开文件,并返回一个流以写入它。
- change_dir:将工作目录更改为提供的路径。
- copy:将文件从指定的源路径复制到指定的目标。
- create_dir:在指定的路径上以指定的文件模式创建一个目录。
- create_file:在指定的路径上创建一个文件,并包含指定的内容。
- create:创建一个文件,并返回一个流以写入它。
- exec:执行 shell 命令。
- exists:检查指定路径上的文件是否存在。
- list_dir:获取提供的路径上的条目。
- mov:将文件从指定的源路径移动到指定的目标。
- open_file:以读取方式打开文件,并将文件内容填充到指定的缓冲区中。
- open:打开文件并返回一个流以读取它。
- pwd:获取工作目录。
- remove_dir_all:删除文件/目录及其全部内容。
- remove_dir:删除指定路径上的目录。如果它不是空目录,则失败。
- remove_file:删除指定路径上的文件。如果它不是文件,则失败。
- setstat:为指定路径上的文件设置元数据。
- stat:获取指定路径上文件的文件信息。
- symlink:在指定路径创建一个符号链接,指向指定的文件。
客户端兼容性表 ✔️
以下表格说明了每个协议客户端和远程文件系统特性方法的兼容性。
注意:connect()
、disconnect()
和 is_connected()
必须始终支持,因此已从表中省略。
客户端/方法 | Aws-S3 | Ftp | Scp | Sftp |
---|---|---|---|---|
append_file | 不支持 | 支持 | 不支持 | 支持 |
append | 不支持 | 支持 | 不支持 | 支持 |
change_dir | 支持 | 支持 | 支持 | 支持 |
copy | 不支持 | 不支持 | 支持 | 支持 |
create_dir | 支持 | 支持 | 支持 | 支持 |
create_file | 支持 | 支持 | 支持 | 支持 |
create | 不支持 | 支持 | 支持 | 支持 |
exec | 不支持 | 不支持 | 支持 | 支持 |
exists | 支持 | 支持 | 支持 | 支持 |
list_dir | 支持 | 支持 | 支持 | 支持 |
mov | 不支持 | 支持 | 支持 | 支持 |
open_file | 支持 | 支持 | 支持 | 支持 |
open | 不支持 | 支持 | 支持 | 支持 |
pwd | 支持 | 支持 | 支持 | 支持 |
remove_dir_all | 支持 | 支持 | 支持 | 支持 |
remove_dir | 支持 | 支持 | 支持 | 支持 |
remove_file | 支持 | 支持 | 支持 | 支持 |
setstat | 不支持 | 不支持 | 支持 | 支持 |
stat | 支持 | 支持 | 支持 | 支持 |
symlink | 不支持 | 不支持 | 支持 | 支持 |
支持开发者 ☕
如果您喜欢 remotefs 并对我的工作表示感谢,请考虑进行一点捐赠 🥳
您可以使用以下平台之一进行捐赠
使用 remotefs 的应用 🚀
贡献和问题 🤝🏻
欢迎贡献、错误报告、新功能和提问!😉 如果您有任何问题或担忧,或者想要建议新功能,或者只是想要改进remotefs,请随意提交一个issue或PR。
请遵循我们的贡献指南
更新日志 ⏳
查看remotefs的更新日志这里
由 💪
remotefs由以下出色项目提供支持
许可证 📃
remotefs采用MIT许可证。
您可以在这里阅读完整许可证这里
依赖关系
~1.3–2MB
~38K SLoC