       @storagePath       = @storagePath.replace /\/$/, ''
       @storagePath       = nodePath.normalize @storagePath
 
-      fs.mkdirsSync @storagePath
+      fs.mkdirs @storagePath, {mode: @permissions}, (error) ->
+        if error
+          throw new Meteor.Error 401, "[FilesCollection.#{@collectionName}] Path #{@storagePath} is not writable!", error
+        return
 
       check @strict, Boolean
       check @throttle, Match.OneOf false, Number


      {extension, extensionWithDot} = @getExt fileName

      path      = "#{@storagePath}/#{randFileName}#{extensionWithDot}"
      
      opts.type = @getMimeType opts

        if error
          callback and callback error
        else
          result._id = self.collection.insert _.clone result
          callback and callback null, result
      
      return @
