【问题标题】:Is uploading a file using Ruby's Net::FTP class a synchronous operation?使用 Ruby 的 Net::FTP 类上传文件是同步操作吗?
【发布时间】:2014-01-23 09:16:35
【问题描述】:

我正在使用 Ruby 的 Net::FTP 类将文件上传到远程服务器。

Net::FTP.open(SERVER, USER, PASS) do |ftp|
  do_foo
  ftp.puttextfile(bigfile.txt, bigfile.txt)
  do_bar
end

Ruby 会在执行do_bar 方法之前等待puttextfile 完成文件上传吗?

如果没有,我怎么会发生这种情况?

【问题讨论】:

    标签: ruby ftp


    【解决方案1】:

    是的,FTP 上传是作为同步操作实现的,这意味着只有在上传完成(或失败)后才会执行下一条语句

    然而,ftp.puttextfile 允许传递一个回调,该回调将在每个传输的行上执行。 Docs

    【讨论】:

    • 感谢您的确认。我以为是这样,但是最近 JavaScript 做的太多了。
    • 我已经预料到一些 javascript 经验会导致这个问题:)
    【解决方案2】:

    是的,是同步操作。

    但是,如果您希望它并行发生,您可以在不同的 thread 中使用执行 Net::FTP.open

    【讨论】:

      猜你喜欢
      • 2014-07-17
      • 2021-06-02
      • 1970-01-01
      • 2014-09-11
      • 2020-07-12
      • 2014-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多