Seaweedfs объединяет/записывает полученные буферные данные в файл

Я хотел бы задать вопрос о функциональности Seaweedfs.

В моем случае у меня есть браузер, в котором есть диктофон. Файлы звуковых фрагментов передаются на серверную часть NodeJS с помощью сокета. Когда чанк находится в бэкэнде, я должен сохранить его в хранилище и объединить вместе. Поддерживает ли Seaweedfs функции, при которых буферные данные принимаются и объединяются в хранилище?

Или, может быть, есть лучшее решение, как я могу хранить аудиофрагменты в живой записи и объединять их вместе, получая в конце полный аудиофайл.


person Arthur    schedule 20.01.2021    source источник


Ответы (1)


Я добавил файловый REST API для добавления в файл. Вы можете дождаться еженедельного релиза в следующее воскресенье.

Это работает для вас?

    //create or append the file
    POST /path/to/file?op=append
    PUT /path/to/file?op=append
person chrislusf    schedule 20.01.2021
comment
Так что в основном звучит правильно, если эта конечная точка API знает, как добавить в файл. Мое решение tmp сейчас в моем приложении nodeJS выглядит примерно так, используя FS lib appendTempFile (fileName, data) { return fs.appendFile(/tmp/${fileName}, data) } - person Arthur; 21.01.2021
comment
Можно ли выпустить эти изменения в это воскресенье? :) - person Arthur; 21.01.2021
comment
Здесь собраны последние сборки github.com/chrislusf/seaweedfs/releases/tag. /dev - person chrislusf; 22.01.2021
comment
Протестировал ваши последние коммиты в мастере. Он не добавляет два аудиофайла webm. Похоже, он перезаписывает первый файл - person Arthur; 22.01.2021
comment
Я загрузил два тестовых аудиофайла, которые использовал для тестирования — скопируйте эту ссылку в браузере we.tl/t-DNeYRT2gyv curl -F file=@first_part.webm localhost:8888/audio {name:first_part.webm,size:39347} curl -F file=@second_part.webm localhost:8888/audio/first_part.webm?op=append {имя:second_part.webm,размер:39636} - person Arthur; 22.01.2021
comment
второй тестовый завиток -F file=@first_part.webm localhost:8888/audio3/first_part.webm ?op=append {name:first_part.webm,size:39347} curl -F file=@second_part.webm localhost:8888/audio3/first_part.webm?op=append {name:second_part.webm,size:39636} третий тестовый завиток -X POST -F file=@first_part.webm localhost:8888/audio4/first_part.webm?op=append {name: first_part.webm,size:39347} curl -X PUT -F file=@second_part.webm localhost:8888/audio4/first_part.webm?op=append {size:39844} - person Arthur; 22.01.2021
comment
он не сообщает общий размер, а только загруженный размер. ты сам файл проверял? - person chrislusf; 23.01.2021
comment
Я добавил исправление, чтобы он показывал новый общий размер файла. - person chrislusf; 24.01.2021
comment
Ок, попробую протестировать - person Arthur; 25.01.2021