 
     self      = @
     opts     ?= {}
-    fileId    = Random.id()
+    fileId    = opts.fileId or Random.id()
     FSName    = if @namingFunction then @namingFunction() else fileId
     pathParts = url.split('/')
     fileName  = if (opts.name or opts.fileName) then (opts.name or opts.fileName) else pathParts[pathParts.length - 1] or FSName

  @param {String} opts.type - File mime-type
  @param {Object} opts.meta - File additional meta-data
  @param {String} opts.userId - UserId, default *null*
  @param {Function} callback - function(error, fileObj){...}
  @param {Boolean} proceedAfterUpload - Proceed onAfterUpload hook
  @summary Write buffer to FS and add to FilesCollection Collection

          extension: data.extension
      _downloadRoute:  data._downloadRoute or @downloadRoute
      _collectionName: data._collectionName or @collectionName
    
    #Optional fileId
    if data.fileId
       ds._id = data.fileId;
    
    @_updateFileTypes ds
    ds._storagePath = data._storagePath or @storagePath(_.extend(data, ds))
    return ds
