    # File lib/amalgalite/blob.rb, line 87
        def initialize( params )
          if (Blob.valid_source_params & params.keys).size > 1 then
            raise Blob::Error, "Only a one of #{Blob.valid_source_params.join(', ')} is allowed to initialize a Blob.  #{params.keys.join(', ')} were sent"
          end

          @source                  = nil
          @source_length           = 0
          @close_source_after_read = false
          @incremental             = true
          @block_size              = params[:block_size] || Blob.default_block_size
          @column                  = params[:column]

          raise Blob::Error, "A :column parameter is required for a Blob" unless @column or params.has_key?( :string )

          if params.has_key?( :file ) then
            @source = File.open( params[:file], "r" )
            @length = File.size( params[:file] )
            @close_source_after_read = true
          elsif params.has_key?( :io ) then
            @source = params[:io]
            @length = @source.length
          elsif params.has_key?( :db_blob ) then
            @source = params[:db_blob]
            @length = @source.length
            @close_source_after_read = true
          elsif params.has_key?( :string ) then
            @source = params[:string]
            @length = @source.length
            @incremental = false
          end
        end