function Publisher(AWSConfig, cacheOptions) {
  this.config = AWSConfig;
  this.client = new AWS.S3(AWSConfig);
  var bucket = this.config.params.Bucket;

  if (!bucket) {
    throw new Error('Missing `params.Bucket` config value.');
  }

  // init Cache file
  this._cacheFile =
    cacheOptions && cacheOptions.cacheFileName
      ? cacheOptions.cacheFileName
      : '.awspublish-' + bucket;

  // load cache
  try {
    this._cache = JSON.parse(fs.readFileSync(this.getCacheFilename(), 'utf8'));
  } catch (err) {
    this._cache = {};
  }
}
function Publisher(AWSConfig, cacheOptions) {
  this.config = AWSConfig;
  this.client = new AWS.S3(AWSConfig);
  var bucket = this.config.params.Bucket;

  if (!bucket) {
    throw new Error('Missing `params.Bucket` config value.');
  }

  
  this._cacheFile =
    cacheOptions && cacheOptions.cacheFileName
      ? cacheOptions.cacheFileName
      : '.awspublish-' + bucket;

  
  try {
    this._cache = JSON.parse(fs.readFileSync(this.getCacheFilename(), 'utf8'));
  } catch (err) {
    this._cache = {};
  }
}
function Publisher ( AWSConfig , cacheOptions ) { this . config = AWSConfig ; this . client = new AWS . S3 ( AWSConfig ) ; var bucket = this . config . params . Bucket ; if ( ! bucket ) { throw new Error ( 'Missing `params.Bucket` config value.' ) ; } // init Cache file this . _cacheFile = cacheOptions && cacheOptions . cacheFileName ? cacheOptions . cacheFileName : '.awspublish-' + bucket ; // load cache try { this . _cache = JSON . parse ( fs . readFileSync ( this . getCacheFilename ( ) , 'utf8' ) ) ; } catch ( err ) { this . _cache = { } ; } }
create a new Publisher
@param {Object} S3 options as per http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#constructor-property
@api private
create a new Publisher