离子上传视频到S3

问题描述 投票:0回答:1

我正在尝试使用它上传视频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();

    });
  })};
javascript video amazon-s3 ionic-framework
1个回答
1
投票

您可以使用$ cordova文件和aws javascript-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;
        };
© www.soinside.com 2019 - 2024. All rights reserved.