2016-05-25 10 views
18

Mit der neuen Firebase-API können Sie Dateien aus dem Client-Code in den Cloud-Speicher hochladen. Die examples übernehmen wird der Dateiname bekannt oder statisch beim Upload:Dateien mit eindeutigen/zufälligen Namen speichern

// Create a root reference 
var storageRef = firebase.storage().ref(); 

// Create a reference to 'mountains.jpg' 
var mountainsRef = storageRef.child('mountains.jpg'); 

// Create a reference to 'images/mountains.jpg' 
var mountainImagesRef = storageRef.child('images/mountains.jpg'); 

oder

// File or Blob, assume the file is called rivers.jpg 
var file = ... 

// Upload the file to the path 'images/rivers.jpg' 
// We can use the 'name' property on the File API to get our file name 
var uploadTask = storageRef.child('images/' + file.name).put(file); 

Mit Benutzer ihre eigenen Dateien hochladen, Namenskonflikte ein Problem sein werden. Wie kann Firebase einen Dateinamen erstellen, anstatt ihn selbst zu definieren? Gibt es so etwas wie die push()-Funktion in der Datenbank zum Erstellen eindeutiger Speicherreferenzen?

Antwort

33

Firebase Speicherproduktmanager hier:

TL; DR: Verwenden Sie einen UUID-Generator (in Android (UUID) und iOS (NSUUID) sie sind eingebaut, in JS Sie so etwas wie diese verwenden: Create GUID/UUID in JavaScript?), Dann füge die Dateierweiterung an, wenn du sie behalten willst (spalte die Datei.name auf '.' und hole das letzte Segment)

Wir wussten nicht, welche Version von Unique Files Entwickler (siehe unten) wollen, da Es gibt viele, viele Anwendungsfälle dafür, also haben wir beschlossen, die Auswahl den Entwicklern zu überlassen.

images/uuid/image.png // option 1: clean name, under a UUID "folder" 
image/uuid.png   // option 2: unique name, same extension 
images/uuid    // option 3: no extension 

es so scheint mir, wäre eine vernünftige Sache zu sein, obwohl in unserer Dokumentation zu erklären, so dass ich einen Fehler intern Datei zu dokumentieren :)

+0

ist es eine Möglichkeit, dies zu tun mit zu Web-Version von Firebase? –

+0

Ja, siehe http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript wie oben erwähnt –

+0

Das ist ziemlich schrecklich, wenn Sie möchten, dass Benutzer die Dateien zurückladen. Es sollte eine einfache Möglichkeit geben, die Dateien vor dem Hochladen umzubenennen, wenn eine Datei existiert. – Pier