def initialize(files, chunks, filename, mode, opts={})
@files = files
@chunks = chunks
@filename = filename
@mode = mode
opts = opts.dup
@query = opts.delete(:query) || {}
@query_opts = opts.delete(:query_opts) || {}
@fs_name = opts.delete(:fs_name) || Grid::DEFAULT_FS_NAME
@write_concern = get_write_concern(opts)
@local_md5 = Digest::MD5.new if Mongo::WriteConcern.gle?(@write_concern)
@custom_attrs = {}
case @mode
when 'r' then init_read
when 'w' then init_write(opts)
else
raise GridError, "Invalid file mode #{@mode}. Mode should be 'r' or 'w'."
end
end