Size: a a a

2020 April 09

а

а кто это in Go-go!
flock
источник

а

а кто это in Go-go!
но вы чем-то не тем занимаетесь
источник

ЛА

Локоть Анатолий... in Go-go!
Ещё можно добавить шифрование к хранилищу, тогда недочитанный контент просто не расшифруется.
источник

p

pragus in Go-go!
Дмитрий Даржаин
Всем привет! Я пишу веб-сервер на Go, который реализует CRUD над файлами (без работы с БД, только с ФС). То есть возможность загрузить, переименовать, удалить файл, и скачать по HTTP.
Возник главный вопрос, нужно ли мне обеспечить чтобы доступ к файловой системе был взаимоисключающий (типа вернуть список файлов, переименовать, удалить, создать файл), а если и нужно то как следует сделать? Чтобы клиент не скачал допустим не доконца загруженный файл.
Была мысль сделать через канал, типа когда идет операция на изменение, блокировать рутину HTTP GET, но что то такое мне кажется
тестовое задание что ли? )
источник

а

а кто это in Go-go!
Локоть Анатолий
Ещё можно добавить шифрование к хранилищу, тогда недочитанный контент просто не расшифруется.
чево
источник

ДД

Дмитрий Даржаин... in Go-go!
pragus
тестовое задание что ли? )
диплом, есть сайт, со всякими файлами. админку надо прифигачить чтоб можно было CRUD делать
источник

p

pragus in Go-go!
Дмитрий Даржаин
Всем привет! Я пишу веб-сервер на Go, который реализует CRUD над файлами (без работы с БД, только с ФС). То есть возможность загрузить, переименовать, удалить файл, и скачать по HTTP.
Возник главный вопрос, нужно ли мне обеспечить чтобы доступ к файловой системе был взаимоисключающий (типа вернуть список файлов, переименовать, удалить, создать файл), а если и нужно то как следует сделать? Чтобы клиент не скачал допустим не доконца загруженный файл.
Была мысль сделать через канал, типа когда идет операция на изменение, блокировать рутину HTTP GET, но что то такое мне кажется
> Чтобы клиент не скачал допустим не доконца загруженный файл

а зачем вы делаете видимыми не до конца загруженные файлы? :)
источник

ЛА

Локоть Анатолий... in Go-go!
Обеспечить шифрование имён файлов и контента... Это обеспечит проверку чексуммы этих значений и хоть как-то оправдает наличие этого кода)
источник

p

pragus in Go-go!
Дмитрий Даржаин
Всем привет! Я пишу веб-сервер на Go, который реализует CRUD над файлами (без работы с БД, только с ФС). То есть возможность загрузить, переименовать, удалить файл, и скачать по HTTP.
Возник главный вопрос, нужно ли мне обеспечить чтобы доступ к файловой системе был взаимоисключающий (типа вернуть список файлов, переименовать, удалить, создать файл), а если и нужно то как следует сделать? Чтобы клиент не скачал допустим не доконца загруженный файл.
Была мысль сделать через канал, типа когда идет операция на изменение, блокировать рутину HTTP GET, но что то такое мне кажется
классический кейс: что будет, если два клиента будут заливать файл с одинаковым именем? )
источник

ДД

Дмитрий Даржаин... in Go-go!
pragus
классический кейс: что будет, если два клиента будут заливать файл с одинаковым именем? )
мне кажется на уровне ФС кого то откинут
источник

ДД

Дмитрий Даржаин... in Go-go!
сис вызов
источник

p

pragus in Go-go!
Дмитрий Даржаин
мне кажется на уровне ФС кого то откинут
Нет
источник

p

pragus in Go-go!
Ключ к решению проблемы - использование временного файла при upload и переименование при успешной загрузке
источник

T

Tim in Go-go!
просто сделайте один глобальный лок на имена файлов, чтобы только 1 реквест мог одновременно 1 имя файла трогать. Не надо так оверинжинирить простую задачу
источник

ДД

Дмитрий Даржаин... in Go-go!
pragus
Ключ к решению проблемы - использование временного файла при upload и переименование при успешной загрузке
Спасибо!
источник

ЛА

Локоть Анатолий... in Go-go!
Tim
просто сделайте один глобальный лок на имена файлов, чтобы только 1 реквест мог одновременно 1 имя файла трогать. Не надо так оверинжинирить простую задачу
1 глобальный лок сделает систему однопоточной.
Почему просто не использовать уникальный айди в именах файлов при хранении, например, uuid
источник

T

Tim in Go-go!
Локоть Анатолий
1 глобальный лок сделает систему однопоточной.
Почему просто не использовать уникальный айди в именах файлов при хранении, например, uuid
1 поток на 1 имя файла.
источник

T

Tim in Go-go!
Уникальный айди не использовать потому что это лишние шаги с менеджингом связей имён
источник

ЛА

Локоть Анатолий... in Go-go!
Tim
1 поток на 1 имя файла.
А, ок
источник

ДД

Дмитрий Даржаин... in Go-go!
Tim
1 поток на 1 имя файла.
То есть предложение якобы создавать lock file на один файл? Или в памяти хранить все имена файлов
источник