code: function (name, parent_id, opts, done, headers, config) {
          if (!_.isString(name) || !_.isNumber(parseInt(parent_id, 10))) {
            return done(new Error('Invalid params. Required - name: string, parent_id: number'));
          }
  
          opts = opts || {};
          opts.parent_id = parent_id;
  
          var data = fs.createReadStream(name);
          this._request(['files', 'content'], 'POST', done, null, opts, data, headers, null, config);
        }
docs: Options to set for {@link Connection#uploadFile}.
  @typedef {Object} OptsUploadFile
  @property {timestamp} [content_created_at] - The time this file was created on the user’s machine.
  @property {timestamp} [content_modified_at] - The time this file was last modified on the user’s machine.
  @see {@link https://developers.box.com/docs/#files-upload-a-file}
   
  Use the Uploads API to allow users to add a new file. The user can then upload a file by
  specifying the destination folder for the file. If the user provides a file name that
  already exists in the destination folder, the user will receive an error. You can
  optionally specify a {@linkcode header[Content-MD5]} header with the SHA1 hash of the file
  to ensure that the file is not corrupted in transit.
  @summary Upload a File.
  @see {@link https://developers.box.com/docs/#files-upload-a-file}
  @param {string} name - The fully qualified path to the local file.
  @param {number} parent_id - The parent folder's ID.
  @param {?OptsUploadFile} opts - Request options.
  @param {requestCallback} done - The callback to invoke (with possible errors) when the request returns.
  @param {?RequestHeaders} [headers] - Additional headers.
  @param {?RequestConfig} [config] - Configure the request behaviour.