UNPKG

1.35 kBJavaScriptView Raw
1
2var AWS = require('aws-sdk');
3var request = require('request');
4var fs = require('fs');
5var zlib = require('zlib');
6
7var config = require('./config');
8
9exports.saveVideo = function(sessionToken, videoFileUrl) {
10
11 // copy video to s3 bucket
12 var fileExtension = '.mkv'
13 var s3Bucket = config.aws.bucket_name;
14 var s3Key = sessionToken + '/' + sessionToken + fileExtension;
15
16 // Load the stream
17 var body = fs.createReadStream(videoFileUrl).pipe(zlib.createGzip());
18
19 // Upload the stream
20 var s3obj = new AWS.S3({params: {Bucket: s3Bucket, Key: s3Key}});
21 s3obj.upload({Body: body}, function(err, data) {
22 if (err) {
23 console.log("An error occurred", err);
24 }
25 console.log("Uploaded the file at", data.Location);
26 });
27
28 // TODO: configure https vs http
29 var postUrl = 'http://' + config.portal.hostname + '/portal/affdex_x2/experiment/set_facevideo_ready';
30 // communicate to portal that the video is ready for processing
31 request.post(
32 postUrl,
33 { form: { sessionToken: sessionToken } },
34 function (error, response, body) {
35 if (!error && response.statusCode == 200) {
36 console.log(body)
37 } else {
38 console.log(error)
39 }
40 // TODO: error handling for portal down. retry?
41 }
42 );
43};
\No newline at end of file