S3上传发送事件在本地使用deferred.notify()但不在服务器上

时间:2015-06-18 18:40:31

标签: node.js amazon-s3

我发送一个对象到s3上传,在本地我回来了一个' httpUploadProgress'事件。这将通知函数上的.progress调用,然后更新记录及其进度。它在本地工作正常但不在服务器上。任何想法,将不胜感激。我已经包含了两段代码。我使用的是谷歌服务器,不确定它是否是代码或服务器设置的问题:/



s3.uploadVideo = function (filepath, videoName, publisher_id) {
	var deferred = q.defer();
	var body = fs.createReadStream(filepath);
	var s3obj = new AWS.S3({
		params: {
			Bucket: transcodeConfig.NonTranscodedVideoBucket,
			Key: publisher_id + '/' + videoName
		}
	});
	s3obj.upload({Body: body}).
		on('httpUploadProgress', function (evt) {
			deferred.notify(evt);
			return
		}).
		send(function (err, data) {
			if (!err) {
				deferred.resolve(data);
				return
			} else {
				deferred.reject(err);
				return
			}
		});
	//deferred.resolve({})
	return deferred.promise;
}






aws_api.s3.uploadVideo(file.path, fileName, publisher_id ).progress(function(progress){
		return models.videos.findOneAndUpdate({_id : trackingId},{uploadProgress: progress, file_type:fileExtension},function(err,data){
			if(err){
				return next(err);
			}else{

				return data;
			}
		})
	})




0 个答案:

没有答案