пятница, 10 марта 2023 г.

Загрузка большого файла на облако с ограничением размера на загружаемый файл

Для своих нужд возникла задача сохранить на облаке Диск.Яндекс в коллекции файл размером в 4,3 ГБ. Так как Диск.Яндекс не позволяет загружать в бесплатном аккаунте файлы размером более 1 ГБ, то было принято решение сохранить его в облаке в виде файла разбитого на части.

Итак, файл кино C 8 марта мужчины.mkv ‒ 4,3 GiB (4 598 910 123 байта). Учитывая изложенное выше, его необходимо разбить на 5 частей. Вариант с созданием многотомного архива 7z был признан "нерентабельным" в плане нагрузки на процессор. Поскольку на моём компьютере графическая программа gnome-split уже давно "вылетает" на этапе разбиения файла, то было принято решение разбить файл командой split, запускаемой через терминал.

Чтобы не мучиться с экранированием в команде путей, содержащих пробелы, файл был переименован таким образом, чтобы в его имени пробелы отсутствовали, например, C.8.марта.мужчины.mkv (можно было и C_8_марта_мужчины.mkv или C-8-марта-мужчины.mkv).

В команде создания выходного файла указывается суффикс длиной в 1 символ. 

split /home/user/Загрузки/C.8.марта.мужчины.mkv /home/user/Загрузки/C.8.марта.мужчины.mkv_ -x -n5 -a1

Вместо user используйте имя папки своей учётной записи.
-n5 означает, что разбить нужно на 5 частей.
-a1 означает, то каждая часть разбитого файла идентифицируется суффиксом вида _цифра.

В результате исходный файл был разбит на 5 частей, размер каждой из которых составил  877,2 MiB (919 782 024 байта):
C.8.марта.мужчины.mkv_0
C.8.марта.мужчины.mkv_1
C.8.марта.мужчины.mkv_2
C.8.марта.мужчины.mkv_3
C.8.марта.мужчины.mkv_4

Чтобы склеить файлы обратно в данном примере будет использована команда (в одну строку):

cat /home/user/Join/C.8.марта.мужчины.mkv_* > /home/user/Join/C.8.марта.мужчины.mkv && rm /home/user/Join/C.8.марта.мужчины.mkv_*

После её выполнения исходные части, из которых был собран результирующий файл, будут удалены (часть команды ‒ && rm /home/minter/Join/C.8.марта.мужчины.mkv_*).

Про применение команды split на русском языке можно прочитать здесь.

1 комментарий:

  1. Маленькое уточнение.
    опция -а1: количество символов в суффиксе (по умолчанию 2)
    опция -x: использовать 16-тиричный вид суффикса. 10-тиричный вид опция -d.

    ОтветитьУдалить