Class: Mongo::Grid::File::Info Deprecated
- Inherits:
-
Object
- Object
- Mongo::Grid::File::Info
- Defined in:
- lib/mongo/grid/file/info.rb
Overview
Please use the ‘stream’ API on a FSBucket instead. Will be removed in driver version 3.0.
Encapsulates behavior around GridFS files collection file document.
Constant Summary collapse
- COLLECTION =
Name of the files collection.
'files'.freeze
- MAPPINGS =
Mappings of user supplied fields to db specification.
{ :chunk_size => :chunkSize, :content_type => :contentType, :filename => :filename, :_id => :_id, :md5 => :md5, :length => :length, :metadata => :metadata, :upload_date => :uploadDate, :aliases => :aliases }.freeze
- DEFAULT_CONTENT_TYPE =
Default content type for stored files.
'binary/octet-stream'.freeze
Instance Attribute Summary collapse
-
#document ⇒ BSON::Document
readonly
Document The files collection document.
Instance Method Summary collapse
-
#==(other) ⇒ true, false
Is this file information document equal to another?.
-
#bson_type ⇒ Integer
Get the BSON type for a files information document.
-
#chunk_size ⇒ Integer
Get the file chunk size.
-
#content_type ⇒ String
Get the file information content type.
-
#filename ⇒ String
Get the filename from the file information.
-
#id ⇒ BSON::ObjectId
Get the file id from the file information.
-
#initialize(document) ⇒ Info
constructor
Create the new file information document.
-
#inspect ⇒ String
Get a readable inspection for the object.
-
#length ⇒ Integer
(also: #size)
Get the length of the document in bytes.
-
#md5 ⇒ String
deprecated
Deprecated.
as of 2.6.0
-
#metadata ⇒ String
Get the additional metadata from the file information document.
-
#to_bson(buffer = BSON::ByteBuffer.new, validating_keys = nil) ⇒ String
Convert the file information document to BSON for storage.
-
#update_md5(bytes) ⇒ Digest::MD5
deprecated
Deprecated.
as of 2.6.0
-
#upload_date ⇒ Time
Get the upload date.
Constructor Details
#initialize(document) ⇒ Info
Create the new file information document.
139 140 141 142 143 144 145 146 147 148 |
# File 'lib/mongo/grid/file/info.rb', line 139 def initialize(document) @client_md5 = Digest::MD5.new unless document[:disable_md5] == true # document contains a mix of user options and keys added # internally by the driver, like session. # Remove the keys that driver adds but keep user options. document = document.reject do |key, value| key.to_s == 'session' end @document = default_document.merge(Options::Mapper.transform(document, MAPPINGS)) end |
Instance Attribute Details
#document ⇒ BSON::Document (readonly)
Returns document The files collection document.
56 57 58 |
# File 'lib/mongo/grid/file/info.rb', line 56 def document @document end |
Instance Method Details
#==(other) ⇒ true, false
Is this file information document equal to another?
68 69 70 71 |
# File 'lib/mongo/grid/file/info.rb', line 68 def ==(other) return false unless other.is_a?(Info) document == other.document end |
#bson_type ⇒ Integer
Get the BSON type for a files information document.
81 82 83 |
# File 'lib/mongo/grid/file/info.rb', line 81 def bson_type BSON::Hash::BSON_TYPE end |
#chunk_size ⇒ Integer
Get the file chunk size.
93 94 95 |
# File 'lib/mongo/grid/file/info.rb', line 93 def chunk_size document[:chunkSize] end |
#content_type ⇒ String
Get the file information content type.
105 106 107 |
# File 'lib/mongo/grid/file/info.rb', line 105 def content_type document[:contentType] end |
#filename ⇒ String
Get the filename from the file information.
115 116 117 |
# File 'lib/mongo/grid/file/info.rb', line 115 def filename document[:filename] end |
#id ⇒ BSON::ObjectId
Get the file id from the file information.
127 128 129 |
# File 'lib/mongo/grid/file/info.rb', line 127 def id document[:_id] end |
#inspect ⇒ String
Get a readable inspection for the object.
158 159 160 161 |
# File 'lib/mongo/grid/file/info.rb', line 158 def inspect "#<Mongo::Grid::File::Info:0x#{object_id} chunk_size=#{chunk_size} " + "filename=#{filename} content_type=#{content_type} id=#{id} md5=#{md5}>" end |
#length ⇒ Integer Also known as: size
Get the length of the document in bytes.
171 172 173 |
# File 'lib/mongo/grid/file/info.rb', line 171 def length document[:length] end |
#md5 ⇒ String
as of 2.6.0
Get the md5 hash.
198 199 200 |
# File 'lib/mongo/grid/file/info.rb', line 198 def md5 document[:md5] || @client_md5 end |
#metadata ⇒ String
Get the additional metadata from the file information document.
184 185 186 |
# File 'lib/mongo/grid/file/info.rb', line 184 def document[:metadata] end |
#to_bson(buffer = BSON::ByteBuffer.new, validating_keys = nil) ⇒ String
If no md5 exists in the file information document (it was loaded from the server and is not a new file) then we digest the md5 and set it.
Convert the file information document to BSON for storage.
236 237 238 239 240 241 |
# File 'lib/mongo/grid/file/info.rb', line 236 def to_bson(buffer = BSON::ByteBuffer.new, validating_keys = nil) if @client_md5 && !document[:md5] document[:md5] = @client_md5.hexdigest end document.to_bson(buffer) end |
#update_md5(bytes) ⇒ Digest::MD5
as of 2.6.0
This method is transitional and is provided for backwards compatibility.
Update the md5 hash if there is one.
It will be removed when md5 support is deprecated entirely.
217 218 219 |
# File 'lib/mongo/grid/file/info.rb', line 217 def update_md5(bytes) md5.update(bytes) if md5 end |
#upload_date ⇒ Time
Get the upload date.
251 252 253 |
# File 'lib/mongo/grid/file/info.rb', line 251 def upload_date document[:uploadDate] end |