Сценарии Minio / S3, где файлы должны перемещаться в пакетном режиме - PullRequest
1 голос
/ 14 марта 2019

Я искал, но не нашел удовлетворительного решения.

В Minio / S3 нет каталогов, только ключи (с префиксами).Все идет нормально.

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

К сожалению, эти серверы хранения данных, похоже, не имеют понятия (и не поддерживают):

  • переименовать файл
  • переместить файл

Что нужно сделать, это для каждого файла

  • скопировать файл вновое целевое местоположение
  • удалить файл из старого исходного местоположения

Мой заданный дизайн выглядит следующим образом:

  • пользователи загружают файлы на имя группы / загружает /filename.ext
  • фоновый процесс берет загруженные файлы, генерирует еще несколько файлов и загружает их в имя_хвата / temp / filename.ext
  • , когда все обработки завершены, загруженный файл и обработанные файлыперемещаются в имя_хранилища / обработано / задание / новые имена файлов ...

Префикс пути используется при обработке уведомления о создании объекта, чтобы различать, является ли это отправкой (начать обработку), темпом (проверкаесли все файлызагружен) и обработан / jobid для удержания их до тех пор, пока пользователь не удалит их.

Представьте себе задачу, в которой 1000 файлов должны попасть в новое место (в пределах одной корзины), скопировать и удалить их один за другим многоместа для ошибок.Недостаточно места во время операции копирования и ошибок подключения без возможности отката (-ов).Это не становится легче, если места будут разными.

Итак, имея этот старый дизайн и не имея шансов переименовать / переместить файл:

Есть ли какие-либо изменения для копирования файлов?без создания новых физических файлов (без дублирования используемого дискового пространства)?

Любой опытный разработчик облачных сервисов мог бы дать мне подсказку, как сделать эту массовую копию с откатами в случаях ошибок?

Кто-нибудь реализовал нечто подобное с функциональным механизмом отката, например, файл 517 из 1000потерпит неудачу?Копировать и удалять их обратно, похоже, не стоит.

В настоящее время я использую сервер Minio и библиотеку Minio dotnet.Но поскольку они совместимы с Amazon S3, этот сценарий также может произойти на Amazon S3.

...