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 = BSON::Config.validating_keys?) ⇒ 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.
136 137 138 139 140 141 142 143 144 145 |
# File 'lib/mongo/grid/file/info.rb', line 136 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.
53 54 55 |
# File 'lib/mongo/grid/file/info.rb', line 53 def document @document end |
Instance Method Details
#==(other) ⇒ true, false
Is this file information document equal to another?
65 66 67 68 |
# File 'lib/mongo/grid/file/info.rb', line 65 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.
78 79 80 |
# File 'lib/mongo/grid/file/info.rb', line 78 def bson_type BSON::Hash::BSON_TYPE end |
#chunk_size ⇒ Integer
Get the file chunk size.
90 91 92 |
# File 'lib/mongo/grid/file/info.rb', line 90 def chunk_size document[:chunkSize] end |
#content_type ⇒ String
Get the file information content type.
102 103 104 |
# File 'lib/mongo/grid/file/info.rb', line 102 def content_type document[:contentType] end |
#filename ⇒ String
Get the filename from the file information.
112 113 114 |
# File 'lib/mongo/grid/file/info.rb', line 112 def filename document[:filename] end |
#id ⇒ BSON::ObjectId
Get the file id from the file information.
124 125 126 |
# File 'lib/mongo/grid/file/info.rb', line 124 def id document[:_id] end |
#inspect ⇒ String
Get a readable inspection for the object.
155 156 157 158 |
# File 'lib/mongo/grid/file/info.rb', line 155 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.
168 169 170 |
# File 'lib/mongo/grid/file/info.rb', line 168 def length document[:length] end |
#md5 ⇒ String
as of 2.6.0
Get the md5 hash.
195 196 197 |
# File 'lib/mongo/grid/file/info.rb', line 195 def md5 document[:md5] || @client_md5 end |
#metadata ⇒ String
Get the additional metadata from the file information document.
181 182 183 |
# File 'lib/mongo/grid/file/info.rb', line 181 def document[:metadata] end |
#to_bson(buffer = BSON::ByteBuffer.new, validating_keys = BSON::Config.validating_keys?) ⇒ 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.
232 233 234 235 236 237 |
# File 'lib/mongo/grid/file/info.rb', line 232 def to_bson(buffer = BSON::ByteBuffer.new, validating_keys = BSON::Config.validating_keys?) 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.
214 215 216 |
# File 'lib/mongo/grid/file/info.rb', line 214 def update_md5(bytes) md5.update(bytes) if md5 end |
#upload_date ⇒ Time
Get the upload date.
247 248 249 |
# File 'lib/mongo/grid/file/info.rb', line 247 def upload_date document[:uploadDate] end |