我正在尝试使用此功能上传视频 http://market.ionic.io/plugins/image-upload
我知道视频的文件路径(它们在我可以通过HTTP访问的摄像机上),我正在尝试研究如何使用这样的东西将这些视频传输到S3上。
我知道我无法将文件路径传递给此函数,并且它必须是根据指令的实际文件。
如何将大型视频文件复制到Javascript变量中以作为文件上传?
var imageUploader = new ImageUploader();
scene.videoFiles.forEach(function(videoFile) {
imageUploader.push(videoFile, function (data) {
console.log('File uploaded Successfully', videoFile, data);
$scope.uploadUri = data.url;
$scope.$digest();
});
})};
答案 0 :(得分:1)
你可以使用$ cordovaFile和aws java script-sdk上传文件(视频)到aws-s3存储桶。这是将视频上传到s3存储桶的示例代码。
var uploadFile = function (file_name,file_path) {
var deferred = $q.defer();
$cordovaFile.readAsArrayBuffer(file_name,file_path)
.then(function (success) {
AWS.config.region = 'eu-west-1';
AWS.config.update({
accessKeyId: 'ACCESS-KEY',
secretAccessKey:'SECRET-KEY'
});
var bucket = new AWS.S3({
params: {
Bucket: 'Bucket-NAME'
}
});
var params = {
Key: "uploads/"+file_name,
Body: success
};
bucket.upload(params).on('httpUploadProgress',function(evt){
$scope.uploading = true;
$scope.progress = parseInt((evt.loaded*100)/ evt.total);
console.log("Uploaded :: " + $scope.progress);
$scope.$apply();
}).send(function (err, data) {
$scope.uploading = false;
$scope.$apply();
deferred.resolve(data);
});
$scope.i++;
}, function (error) {
deferred.reject(error);
});
return deferred.promise;
};