title: Google cloud function download file and redirect to bucket storage
body: <p>I am trying to use a google cloud function in Node.js to download a file for wordpress repo then send the file into a google cloud bucket. I have the wordpress file downloading but it fails to write to the google bucket.  </p>
  
  <pre class="lang-js prettyprint-override"><code>function writeToBucket(jsonObject){
  
  /*
   *  Google API authentication
   */
  
  var gcs = require('@google-cloud/storage')({
           projectId: 'wp-media-cdn',
           keyFilename: 'wp-media-cdn-d9d7c61bfad9.json'
  });
  
  /*
   *  rename image file with image size, format: size X size imgName
   */
  
  var pluginUrl = "https://downloads.wordpress.org/plugin/bbpress.2.5.14.zip";
      newPluginName = "bbpress";
  
  /*
   *  Read image into stream, upload image to bucket
   */
  
  var request = require('request');
  var fs = require('fs'); //used for createWriteString()
  
  var myBucket = gcs.bucket('test_buckyy'); //PUT BUCKET NAME HERE
  var file = myBucket.file(nnewPluginName);
  
  // file.exists() returns true if file already in bucket, then returns file url, exits function
  if(file.exists()){
      return 'https://storage.googleapis.com/${test_buckyy}/${file}';
  }
  
  //pipes image data into fileStream
  var fileStream = myBucket.file(newImageName).createWriteStream();
  request(imgUrl).pipe(fileStream)
      .on('error', function(err) {
          console.log('upload failed');
      })
      .on('finish', function() {
          console.log('file uploaded');
      });
  /*
   *  return image url
   *  use getSignedUrl
   */
  
  
      return 'https://storage.googleapis.com/${test_buckyy}/${file}';
  
  }
  </code></pre>