Created
May 12, 2018 18:29
-
-
Save jgensler8/dce6c01cf2342d642070380c8d5764d7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var buffer = require('buffer'); | |
var path = require('path') | |
var storage = require('@google-cloud/storage'); | |
var stream = require("stream"); | |
const projectId = 'vastorchard'; | |
var gcs = storage({ | |
projectId: projectId | |
}); | |
const gcs_bucket_name = 'mushroom-images'; | |
var gcs_bucket = gcs.bucket(gcs_bucket_name); | |
exports.eventToMessage = function(event) { | |
var b = new buffer.Buffer(event.data.data, 'base64'); | |
console.log("Message String: ", b.toString('ascii')) | |
return JSON.parse(b.toString('ascii')) | |
}; | |
exports.uploadImageToBucket = function(image, image_name, gcs_bucket, gcs_bucket_prefix) { | |
var gcs_file = path.join(gcs_bucket_prefix, image_name); | |
console.log("Uploading", gcs_file, "to", gcs_bucket_name) | |
return gcs_bucket.file(gcs_file).save(image) | |
}; | |
exports.uploadImagesToBucket = function(images, gcs_bucket, gcs_bucket_prefix) { | |
var uploads = images.map(function(imageb64, index) { | |
var prefix = path.join(gcs_bucket_prefix, "" + index); | |
return exports.uploadImageToBucket(imageb64, "" + index + ".jpeg" , gcs_bucket, prefix) | |
}); | |
return Promise.all(uploads); | |
}; | |
/** | |
* Triggered from a message on a Cloud Pub/Sub topic. | |
* | |
* @param {!Object} event The Cloud Functions event. | |
* @param {!Function} The callback function. | |
*/ | |
exports.subscribe = (event, callback) => { | |
message = exports.eventToMessage(event); | |
if(message.type == "Heartbeat") { | |
console.log("Telemetry Event. Nothing to do...") | |
} else if (message.type == "Image") { | |
var deviceID = "Chromebook"; | |
var time = "" + Date.now(); | |
var gcs_bucket_prefix = path.join(deviceID, time); | |
exports.uploadImagesToBucket(message.imageb64, gcs_bucket, gcs_bucket_prefix) | |
} | |
callback(); | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment