Как я могу добавить байты данных в уже загруженный файл в StorJ? - PullRequest
0 голосов
/ 30 января 2020

Я получаю ошибку сегмента при загрузке большого файла.

Я прочитал данные файла кусками байтов, используя метод Read через io.Reader. Теперь мне нужно непрерывно загружать байты данных в StorJ.

1 Ответ

1 голос
/ 25 февраля 2020

Storj, спроектированный как S3-совместимая распределенная система хранения объектов, не позволяет изменять объекты после загрузки. По сути, вы можете удалить или перезаписать, но не можете добавить.

Вы можете сделать что-то, что показалось , как и поддерживается, добавить, однако, используя Storj в качестве бэкэнда. Например, добавив порядковый номер к пути вашего объекта и увеличивая его каждый раз, когда вы хотите добавить к нему. Когда вы хотите загрузить все это, вы должны пройтись по всем частям и получить их все. Или, если вы хотите искать только конкретное смещение, вы можете рассчитать, в какой части будет это смещение, и загрузить его оттуда.

sj://bucket/my/object.name/000
sj://bucket/my/object.name/001
sj://bucket/my/object.name/002
sj://bucket/my/object.name/003
sj://bucket/my/object.name/004
sj://bucket/my/object.name/005

Конечно, это оставляет нерешенной проблему того, что делать, когда несколько клиентов пытаются добавить к вашему «файлу» одновременно. Без какого-либо дополнительного координационного слоя они иногда перезаписывают объекты друг друга.

...