2016-03-25 26 views
-1

Ich entwickle eine Webanwendung mit eckigen und firebase. Außerdem möchte ich, dass meine Nutzer große Videos auf Firebase hochladen können.Fehler beim Hochladen von Videos mit hoher Auflösung auf Firebase

Aber das Problem ist, dass wenn ich versuche, Videos größer als 10.485.760 Bytes laden erhalte ich folgende Fehlermeldung:

angular.js:13294 Error: Firebase.set failed: First argument contains a string greater than 10485760 utf8 bytes in property 'posts.-KDiuigtRhbVxoAocPBb.source' ('data:video/quicktime;base64,AAAAFGZ0eXBxdCAgAAAAAH...') 

Gibt es eine Arbeit um hier, damit ich es möglich machen kann?


Was ich habe so ziemlich jetzt:

.html

<span class="btn btn-default btn-file"> 
    <input type="file" accept="video/*" capture="camera" id="file-upload"> 
</span> 
<div class="field button"> 
    <button ng-click="createPost()" ng-hide="createMode">Post</button> 
</div> 

Controller

$scope.createPost = function() { 
    if ($scope.postVideoData) { 
     $scope.post.createdAt = new Date().toString(); 
     $scope.post.source = $scope.postVideoData; 
     $scope.post.sourceType = "VIDEO"; 
    } 
    $publisherServices.create($scope.post, user); 
    $location.path("/" + $routeParams.associate); 
    }; 

$ publisherServices

.service('$publisherServices', function($firebaseArray, FBURL, $sharedProperties, $location, $routeParams) { 

    var ref = new Firebase(FBURL).child("posts"); 
    var posts = $firebaseArray(ref); 
    return { 
    all: posts, 
    create: function(post, user) { 
     post.ownedBy = $sharedProperties.getCurrentAssociate().$id; 
     post.postedBy = user.uid; 
     //Add to firebase db 
     return posts.$add(post); 
    } 
    }; 
}); 
+0

Haben Sie überlegt, einen Cloud-Speicherdienst wie Amazon S3 zu verwenden? Wenn Firebase vernünftig ein 10-GB-Limit festlegt, bezweifle ich, dass es eine Möglichkeit gibt, sie in Firebase zu speichern. Stattdessen können Sie sie einfach in der Cloud speichern und einen Link zu den Videos in Firebase speichern. –

+0

@SunilD. Eigentlich ist es nur 10 MB Limit. :/ – adolfosrs

+0

Hoppla, weiß nicht, was ich dachte, eine 10GB Grenze wäre viel zu hoch :) Ich speicher die Videos für meine App in S3, ihre Preise sind sehr vernünftig. Sie können ihren kostenlosen Tier auch für ein Jahr nutzen. –

Antwort

0

Vom Firebase documentation on limitations and restrictions:

Size of one child value

Limit: 10mb (UTF-8 encoded)

Sie bekommen einen Fehler, der besagt, dass Sie diese Grenze sind zu überschreiten. Es gibt keine Möglichkeit, dieses Limit zu ändern, für sehr gute Gründe.

Das Speichern großer Mediendateien in der Firebase-Echtzeitdatenbank ist keine gute Idee. Es ist keine Medienspeicherschicht, sondern eine Datenbank zum Synchronisieren von Daten in vernünftiger Größe in Echtzeit.

Verwenden Sie zum Speichern von Mediendateien einen dedizierten Dienst (S3, GCS usw.), und verwenden Sie dann Firebase zum Speichern und Kommunizieren der URL.

Verwandte Themen