2016-05-25 4 views
18

С новым API Firebase вы можете загружать файлы в облачное хранилище из клиентского кода. Предположить имя файла examples известно или статический во время загрузки:Хранить файлы с уникальными/случайными именами

// 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'); 

или

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

с пользователями загружая свои собственные файлы, конфликты имен будут проблемой. Как вы можете создать Firebase имя файла, а не определять его самостоятельно? Есть ли что-то вроде функции push() в базе данных для создания уникальных ссылок на хранилище?

менеджер

ответ

33

Firebase Хранение Продукт здесь:

TL; DR: Используйте UUID генератор (в Android (UUID) и IOS (NSUUID) они построены в, в JS вы можете использовать что-то вроде этого: Create GUID/UUID in JavaScript?), затем добавьте расширение файла, если вы хотите его сохранить (разделите файл.name на «.» и получите последний сегмент)

Мы не знали, какую версию уникальных файлов разработчики захотят (см. ниже), поскольку для этого существует много, много вариантов использования, поэтому мы решили оставить выбор разработчикам.

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 

Мне кажется, как это было бы разумно, что нужно объяснить в нашей документации, поэтому я подам ошибку внутри, чтобы задокументировать это :)

+0

есть способ сделать это с помощью к веб-версия firebase? –

+0

Да, см. Http://stackoverflow.com/questions/105034/create-guid-uuid-in-javascript, как упоминалось выше –

+0

Это очень страшно, если вы хотите, чтобы пользователи загружали файлы обратно. Должен быть простой способ переименовать файлы «на лету» перед загрузкой, если файл существует. – Pier

Смежные вопросы