DLSFTPClient 1.0.5

DLSFTPClient 1.0.5

测试已测试
Lang语言 Obj-CObjective C
许可 BSD
发行最后发行2014年12月

Dan Leehr 维护。



一个用于 iOS 的 SFTP 客户端库和示例应用程序,使用 libssh2

概览

DLSFTPClient 是围绕 libssh2 的一个 Objective-C 封装,提供简单上传和下载文件以及进行目录操作的方法。它需要 iOS 5.1。

状态

截至 2013 年 6 月 1 日,DLSFTPClient 被认为是稳定的。没有计划进一步更改 API,尽管可能会继续努力进一步利用 Grand Central Dispatch

示例用法

您需要使用主机和凭据初始化一个 DLSFTPConnection 对象。支持简单的用户名/密码以及私钥认证。

DLSFTPConnection *connection = [[DLSFTPConnection alloc] initWithHostname:@"foo.bar.com"
                                                                     port:22
                                                                 username:@"username"
                                                                 password:@"password"];

要建立连接,使用 connectWithSuccessBlock:failureBlock:

DLSFTPClientSuccessBlock successBlock = ^{ ... };
DLSFTPClientFailureBlock failureBlock = ^(NSError *error) { ... };
[connection connectWithSuccessBlock:successBlock
                       failureBlock:failureBlock];

要断开连接,使用 disconnect

[connection disconnect];

成功和失败回调被调度到全局并发队列。如果您需要驱动 UI 更新,请确保调度回主队列。

如列出目录内容、下载文件、移动/重命名等操作是通过 DLSFTPRequest 的子类来完成的

DLSFTPClientArraySuccessBlock successBlock = ^(NSArray *files) {
    for (DLSFTPFile *sftpFile in files) {
        NSLog(@"File: %@", sftpFile.filename);
    }
};

DLSFTPClientFailureBlock failureBlock = ^(NSError *error) {
    NSLog(@"Error listing files: %@", error);
};

DLSFTPRequest *request = [[DLSFTPListFilesRequest alloc] initWithDirectoryPath:@"/Users/dan/"
                                                                  successBlock:successBlock
                                                                  failureBlock:failureBlock];
[connection submitRequest:request];

DLSFTPFile 类用于封装文件路径和元数据。

在上传和下载文件时,可以提供一个进度块。连接将调度进度块,它在传输文件时会调用,并可用于监控进度。

特点

  1. 通过 SFTP 上传和下载文件
  2. 列出文件
  3. 创建目录
  4. 重命名/移动文件/目录
  5. 删除文件/目录
  6. 操作可以被取消

测试

DLSFTPClient 包括两个测试用例类。要使用它们,您需要将 ConnectionInfo-template.plist 复制到 ConnectionInfo.plist 并使用您自己的服务器的凭据和文件路径更新值。为了测试私钥认证,您还需要添加一个 privatekey.pem 文件。

剩余问题

示例应用程序不完整,需要一些润色。

项目依赖

  1. libssh2 - 提供了一个脚本来构建 libssh2.a 静态库和头文件

许可证

DLSFTPClient 在BSD许可证下开源。更多信息请参阅LICENSE文件。