我试图将文件拆分成块并将它们添加到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个不同的云存储提供商
感谢你的时间,非常感谢任何帮助