rubyzip 在 activejob 中提取空文件

rubyzip extracts empty file in activejob

我的 activejob 中有一个函数可以从 zip 文件中提取特定文件。以下代码提取空文件。

def extract_file(from, name)
  to = get_local_dest(name)

  Zip::File.open(from) do |zip_file|
    entry = zip_file.glob(name).first
    puts entry.get_input_stream.read
    entry.extract(to)
  end

return to

结束

我在控制台中添加了一个调试器和 运行 下面的代码行,然后提取的文件不为空。

entry.extract(to)

谁能帮我解决这个问题?为什么这个函数在activejob中运行时会提取空文件?

您的代码似乎没问题。请确保您的文件没有在继续的代码中再次保存。

它有可能提取得很好,但后来在代码中又以空形式保存了。这在我过去发生过:)

如果这解决了您的问题,请告诉我。 :)