2016-08-01 24 views
0

Ich versuche, diese zu verwenden, um Videos zu http://market.ionic.io/plugins/image-uploadIonic Hochladen von Videos auf S3

Ich weiß, dass die Dateipfade der Videos (sie sind auf Kameras kann ich über die HTTP-Zugriff), ich versuche zu Finde heraus, wie du diese Videos auf S3 verwenden kannst.

Ich bekomme, dass ich den Dateipfad zu dieser Funktion nicht übergeben kann, und es muss eine tatsächliche Datei gemäß der Direktive sein.

Wie kopiere ich eine große Videodatei in eine Javascript-Variable, um sie als Datei hochzuladen?

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(); 

    }); 
    })}; 

Antwort

1

können Sie $ cordovaFile und aws Java-Script-sdk für den Upload-Datei (Video) aws-s3 Eimer verwenden. Dies ist der Beispielcode für das Hochladen von Video in s3-Bucket.

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