Хостинг Firebase с постоянно растущим количеством аудиофайлов

Я разрабатываю мобильное приложение с firebase 3, ionic2 и Angular2. Мы будем постоянно создавать новые аудиофайлы, которые будут предлагаться всем нашим подписавшимся пользователям, т. е. аудиофайлы не зависят от пользователя. Аудиофайлы предлагаются в модулях и последовательно. Другими словами, подписанный пользователь сможет прослушать следующий файл в модуле только тогда, когда все предыдущие файлы в этом модуле были прослушаны.

Хостинг Firebase, похоже, не работает для этой цели, так как я понимаю, что всякий раз, когда мы добавляем новое аудио, нам придется загружать весь сайт со всеми предыдущими и новыми аудиофайлами в качестве контента. Это было бы невероятно утомительным и неработоспособным решением. Я ошибаюсь в этом предположении? Я не видел инкрементной загрузки для хостинга или доступа к нему по ftp.

В качестве альтернативы я сейчас рассматриваю хранилище Firebase для размещения наших аудиофайлов. Однако в этом случае я не уверен, как защитить хранилище. Поскольку мой ключ API должен быть общедоступным в исходном файле (файл js или html), мне кажется, что каждый подписанный пользователь с небольшим знанием js может получить доступ к папкам, в которых размещены наши аудиофайлы, а затем просто скачать их.

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

Каков наилучший способ сделать это?


person hholtij    schedule 02.08.2016    source источник
comment
Если вы хотите защитить доступ к файлу в хранилище Firebase на основе учетных данных пользователя, см. firebase.google. com/docs/storage/security   -  person Frank van Puffelen    schedule 02.08.2016


Ответы (1)


Все зависит от того, как вы храните эти аудиофайлы в Firebase. Не храните файлы в формате base64 и используйте Firebase Storage.

Настоятельно рекомендую использовать либо-

  1. Firebase Storage для постепенного хранения аудиофайлов и предоставления пользователям непрерывного потока.
  2. Загружайте изображения в s3 и постепенно сохраняйте хэш в firebase с использованием массивов.

    сообщения var = $FirebaseArray(ref);

    // добавить новую запись в список messages.$add({ user: "physicsmarie", text: "Hello world" });

    // удалить элемент из списка messages.$remove(someRecordKey);

    // изменить сообщение и сохранить его var item = messages.$getRecord(someRecordKey); item.user = "alanisawesome"; messages.$save(item).then(function() { // данные сохранены в нашей базе данных });

person user2762150    schedule 02.08.2016
comment
1. Да, как я сказал в своем Op, я рассматриваю именно это. Однако мой вопрос заключается в том, как их обезопасить. 2. Я не понимаю, какое отношение размещение образов в S3 имеет к рассматриваемой проблеме. - person hholtij; 02.08.2016