Skip to main content

nsplit

nsplit (Naive Splitter) is a simple CLI tool to split a file into several smaller chunks at data level and merge them back. It does not compress or transform the original file in any way. NFS only reads the file in binary stream and writes it into chunks whose number or size is given by the user.

By having smaller chunks of a file instead of a large one, it allows easier and faster data download and upload, and bypasses file size limits inplaced by some cloud providers.

nsplit works with any file format.

Install

nsplit requires Python >= 3.5.

pip install nsplit

Upon installation, a new nsplit binary will be added to system's path.

Command

Split

Usage

nsplit split [OPTIONS] SRC

Split the file into several chunks by specifying EITHER:

  • number of chunks with --chunk flag
  • size of each chunk with --size-per-chunk flag, and the number of chunks is calculated accordingly, i.e. 5kb, 10mb, 1gb

SRC is the filepath.

Options:

  • -c, --chunk, INTEGER, number of chunks to output
  • -s, --size, TEXT, size of each chunk

Example

Split a file into 5 chunks

nsplit split -c 5 /mnt/c/Users/estep/Videos/Captures/mgs1.mp4

$ nsplit split -c 5 /mnt/c/Users/estep/Videos/Captures/mgs1.mp4
100%|█████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:00<00:00, 37.28it/s]
splitted /mnt/c/Users/estep/Videos/Captures/mgs1.mp4 into 5 chunks
Split a file into chunks of 25MB each

nsplit split -s 25mb /mnt/c/Users/estep/Videos/Captures/medium.webm

$ nsplit split -s 25mb /mnt/c/Users/estep/Videos/Captures/medium.webm
100%|███████████████████████████████████████████████████████████████████████████████████| 18/18 [00:08<00:00,  2.00it/s]
splitted /mnt/c/Users/estep/Videos/Captures/medium.webm into 18 chunks

Merge

Usage

nsplit merge [OPTIONS] SRC

Merge NFS splitted file chunks into one.

NFS splitted file chunks can be identified with .c1, .c2 (etc.) appended to the end of original file's name (path).

If multiple files that are splitted are found, user can choose which one to merge.

If the original file exists under the same directory, a new file with _copy appended to the filename will be created.

SRC is the directory path that contains (parent to) splitted file chunks.

Options:

  • -r, --remove, remove splitted file chunks after merge

Example

Merge splitted file chunks into one

nsplit merge /mnt/c/Users/estep/Videos/Captures

$ nsplit merge /mnt/c/Users/estep/Videos/Captures
100%|█████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:00<00:00, 50.87it/s]
merged splitted file chunks to /mnt/c/Users/estep/Videos/Captures/mgs1_copy.mp4
Merge splitted file chunks into one and remove chunks

nsplit merge -r /mnt/c/Users/estep/Videos/Captures

$ nsplit merge -r /mnt/c/Users/estep/Videos/Captures
100%|█████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:00<00:00, 49.96it/s]
merged splitted file chunks to /mnt/c/Users/estep/Videos/Captures/mgs1_copy.mp4
removed splitted file chunks
Merge splitted file chunks into one where chunks of other files exist

nsplit merge /mnt/c/Users/estep/Videos/Captures

$ nsplit merge /mnt/c/Users/estep/Videos/Captures
found 2 splitted file chunks, choose one to proceed:
1 - dup.mov
2 - mgs1.mp4
your answer: 2
100%|█████████████████████████████████████████████████████████████████████████████████████| 5/5 [00:00<00:00, 47.95it/s]
merged splitted file chunks to /mnt/c/Users/estep/Videos/Captures/mgs1_copy.mp4

Author

Binghuan Zhang - esteponawondering@gmail.com

LICENSE

MIT

Metadata

Release files for nsplit 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nsplit 0.3.1
File Size Uploaded
nsplit-0.3.1.tar.gz 5.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nsplit 0.3.1
File Interpreter ABI Platform
nsplit-0.3.1-py3-none-any.whl Python 3 none any Details

Total release size: 11.8 kB

Release files / nsplit-0.3.1.tar.gz

Download URL nsplit-0.3.1.tar.gz
Size 5.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a589b00c92d6f923f92e971142c7580fb71318022203758fd074c97b40658f93
BLAKE2b-256 checksum
How to use checksums
4b2464618a77f1dd488c8e901908f8a8a33993cd2c189f91c4fc28415dab5dc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.11.2

Release files / nsplit-0.3.1-py3-none-any.whl

Download URL nsplit-0.3.1-py3-none-any.whl
Size 6.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6c3938077c0b593abb9479a666fd58738e6ad6499156e5f9debc13e54bb267cf
BLAKE2b-256 checksum
How to use checksums
eef71c4ab7214ed31eccdb5522d50eef25cc8d17ede143e767f0d03f187bd62b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.11.2

Release history Release notifications | RSS feed

This release

0.3.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page