将文件存储在内存ruby中

时间:2016-04-16 18:13:05

标签: ruby-on-rails ruby file memory temporary-files

我试图将文件拆分成块并将它们添加到ruby中的临时文件列表中,这样我就可以遍历列表并将它们上传到分布式存储。

我似乎遇到的问题是@fileList中的临时文件被垃圾收集,列表中填充了已关闭的文件。

require_relative 'file_uploader'
require 'fileutils'
require 'tempfile'
class FileSplitAlgorytham

  def initialize
    #@uploadFileUs = UploadToUs.new("blogs/1/articles/1/images/10/")
    #@uploadFileIreland = UploadToIreland.new("blogs/1/articles/1/images/10/")
    @chunksize = 1_073
    @fileList = []
  end

  attr_reader :fileList

  def splitFile(file_in)
    @filetype = File.extname(file_in)
    outfilenum = 1
    File.open(file_in,"r") do |fh_in|
      until fh_in.eof?
        Tempfile.open("#{outfilenum}#{@filetype}") do |fh_out|
          line = ""
          while fh_out.size <= (@chunksize -line.length) && !fh_in.eof?
            line = fh_in.readline
            fh_out << line
          end
          #upload files with modulo and counter?
           @fileList << fh_out
        end
      end

    end
  end
end

在此之后,我希望能够遍历@fileList并将其上传到2个不同的云存储提供商

感谢你的时间,非常感谢任何帮助

0 个答案:

没有答案