1
1
var fs = require ( 'fs' ) ;
2
- var http = require ( 'http' ) ;
3
- var qs = require ( 'querystring' ) ;
4
- var path = require ( 'path' ) ;
5
2
var request = require ( 'request' ) ;
6
3
var celery = require ( 'node-celery' ) ;
7
4
var requestretry = require ( 'requestretry' )
5
+ const https = require ( 'https' ) ;
6
+ const url = require ( 'url' ) ;
8
7
9
8
var async = require ( 'async' )
10
- var face_motion = require ( './face_motions' )
11
- //var maintainer = require('./maintainer')
12
- var mqtt_2_group = require ( './mqttgif' )
13
- var timeline = require ( './timeline' )
14
9
var upload = require ( './upload' )
15
10
var device_SN = null
16
11
@@ -32,6 +27,12 @@ var REDIS_PORT = process.env.REDIS_PORT || 6379
32
27
var CLUSTER_REDIS_ADDRESS = process . env . CLUSTER_REDIS_ADDRESS || "redis"
33
28
var CLUSTER_REDIS_PORT = process . env . CLUSTER_REDIS_PORT || 6379
34
29
30
+ const SHARP_AI_TOKEN = process . env . SHARP_AI_TOKEN
31
+ const SHARP_AI_USER_ID = process . env . SHARP_AI_USER_ID
32
+ const SHARP_AI_USERNAME = process . env . SHARP_AI_USERNAME
33
+ const API_SERVER_ADDRESS = process . env . API_SERVER_ADDRESS
34
+ const API_SERVER_PORT = process . env . API_SERVER_PORT
35
+
35
36
function GetEnvironmentVarInt ( varname , defaultvalue )
36
37
{
37
38
var result = process . env [ varname ] ;
@@ -461,6 +462,22 @@ function post_recognition_result_to_api_server(json,accessUrl){
461
462
}
462
463
} ) ;
463
464
}
465
+
466
+ function check_quote_and_sign_url ( key , cb ) {
467
+ const options = {
468
+ method : 'POST' ,
469
+ url : 'http://' + API_SERVER_ADDRESS + ':' + API_SERVER_PORT + '/api/v1/quote/upload' ,
470
+ headers : {
471
+ 'X-Auth-Token' : SHARP_AI_TOKEN ,
472
+ 'X-User-Id' :SHARP_AI_USER_ID ,
473
+ 'Content-type' : 'application/json'
474
+ } ,
475
+ json : true ,
476
+ body :{ key :key }
477
+ } ;
478
+ request ( options , cb ) ;
479
+ }
480
+
464
481
function classify_task ( task_info , cb ) {
465
482
if ( connected_to_celery_broker ) {
466
483
client . call ( 'classify.classify' ,
@@ -483,12 +500,45 @@ function classify_task(task_info, cb) {
483
500
json . result [ 'url' ] = task_info . url
484
501
post_recognition_result_to_api_server ( json , task_info . url )
485
502
} else {
486
- json . result [ 'url' ] = upload . getAccessUrl ( json . result . key ) + '.png'
487
- upload . putFile ( json . result . key + '.png' , task_info . path , function ( error , accessUrl ) {
488
- ON_DEBUG && console . log ( 'error=' , error , 'accessUrl=' , accessUrl )
489
- if ( ! error ) {
490
- post_recognition_result_to_api_server ( json , accessUrl )
503
+ check_quote_and_sign_url ( json . result . key + '.png' , function ( error , response , body ) {
504
+ if ( ! error && response . statusCode == 200 ) {
505
+ //const info = JSON.parse(body);
506
+ ON_DEBUG && console . log ( 'server response: ' + body ) ;
507
+ ON_DEBUG && console . log ( body ) ;
508
+ const info = JSON . parse ( body ) ;
509
+ ON_DEBUG && console . log ( info ) ;
510
+
511
+ var presigned = info . presigned ;
512
+ var filename = task_info . path ;
513
+ var stats = fs . statSync ( filename ) ;
514
+ var file_size = stats . size ;
515
+ var dataStream = fs . createReadStream ( filename ) ;
516
+ var options = url . parse ( presigned ) ;
517
+ options . method = 'PUT' ;
518
+ options . headers = {
519
+ 'Content-Length' : file_size ,
520
+ 'Content-Type' : 'image/png'
521
+ }
522
+
523
+ console . log ( options )
524
+ const stream = https . request ( options ) ;
525
+ stream . on ( 'response' , ( res ) => {
526
+ console . log ( res . statusCode ) ;
527
+ res . pipe ( process . stdout ) ;
528
+
529
+ console . log ( 'uploaded to ' + info . url )
530
+ post_recognition_result_to_api_server ( json , info . url )
531
+ } ) ;
532
+
533
+ dataStream . pipe ( stream ) ;
491
534
}
535
+ /*json.result['url'] = upload.getAccessUrl(json.result.key)+'.png'
536
+ upload.putFile(json.result.key+'.png',task_info.path,function(error,accessUrl){
537
+ ON_DEBUG && console.log('error=',error,'accessUrl=',accessUrl)
538
+ if(!error){
539
+ post_recognition_result_to_api_server(json,accessUrl)
540
+ }
541
+ })*/
492
542
} )
493
543
}
494
544
delete json . result . key
0 commit comments