def open_download_stream_by_name(filename, opts = {}, &block)
revision = opts.fetch(:revision, -1)
if revision < 0
skip = revision.abs - 1
sort = { 'uploadDate' => Mongo::Index::DESCENDING }
else
skip = revision
sort = { 'uploadDate' => Mongo::Index::ASCENDING }
end
file_doc = files_collection.find({ filename: filename} ,
projection: { _id: 1 },
sort: sort,
skip: skip,
limit: -1).first
unless file_doc
raise Error::FileNotFound.new(filename, :filename) unless opts[:revision]
raise Error::InvalidFileRevision.new(filename, opts[:revision])
end
open_download_stream(file_doc[:_id], &block)
end