2016-08-01 87 views
0

我试图用它来上传视频 http://market.ionic.io/plugins/image-upload离子视频上传到S3

我知道的视频文件路径(他们在我的相机可以通过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(); 

    }); 
    })}; 

回答

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; 
     };