【问题标题】:FTP with Swift 4/5 (with/without extra framework)带有 Swift 4/5 的 FTP(带/不带额外框架)
【发布时间】:2019-05-09 09:56:43
【问题描述】:

首先:我知道有关 ftp 的安全问题,所以请不要在这里讨论这个问题 - 必须使用 ftp。

我的应用程序必须使用 ftp(使用用户名/密码)登录服务器,搜索并下载文件,将其从服务器中删除,然后上传编辑后的版本。

我一直在寻找关于如何通过 ftp 连接到服务器的教程,但我发现的只是 Apple 2012 年的文档here 以及他们关于不同功能的文档here(以及一堆奇怪的youtube 上的“Swift FTP”自行车视频...)。我发现的所有其他示例(通常是

是否仍然可以在 Swift 5 中使用 FTP(是否仍然支持?),如果可以,如何?或者,尝试让 Apple 的任何东西正常工作并更好地使用像 FileProvider 这样的额外框架是没有意义的?

【问题讨论】:

  • 2012 年的文档仍然有效。大多数 API 已被弃用,但它仍然有效。无需任何额外框架即可编写 Swift 5 版本。您需要 socket 相关操作来发送原始 FTP 命令和 stream 相关操作来传输数据。
  • 感谢您的回答!是否有任何重要部分也已弃用,或者一切(登录、下载、搜索、上传)仍然可行且正常工作?有点题外话:根据您的经验,是否仍然值得深入研究,还是建议您从自定义框架/库开始?
  • 整个CFFTP... API 已被弃用。例如,它用于读取目录的内容。 Stream 和 BSD 套接字 API 未被弃用。该主题并非微不足道,但 Apple 文档(尽管在 ObjC 中)是一个很好的起点。
  • 我明白了。是否有替代搜索目录的方法?我目前正在尝试进入它,但我什至不知道如何开始,而且我对 ObjC 的不存在的知识也无济于事。我根本找不到任何关于 Swift 的好信息——你碰巧知道一个像样的教程吗?
  • 我觉得没有教程。出于我的目的,我将 ObjC 代码翻译成 Swift,而 BSD 套接字的 C API 只需稍作调整即可在 Swift 中使用。

标签: ios swift ftp


【解决方案1】:

起初我使用FileProvider,不幸的是这个库目前有很多错误,函数被调用了两次(你可以通过使用“firstTimeCalled”布尔检查来防止这种情况)并且如果服务器很慢(-ish) ,你也可能不会得到例如目录中文件的完整列表,因为 FileProvider 在服务器实际完成之前停止接收答案。

我还没有找到任何其他适用于 Swift 的 FTP 库(并且仍然受支持),所以现在我使用 BlueSocket(它能够打开套接字、向服务器发送命令并从中接收命令) ) 并构建了我自己的小型库,可以在它周围发送/接收...文件(使用 FTP 代码)。

【讨论】:

    猜你喜欢
    • 2014-09-30
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    相关资源
    最近更新 更多