$ nncp-file [options] [-chunked INT] SRC NODE:[DST] $ nncp-file [options] [-chunked INT] SRC area:AREA:[DST]
Send SRC file to remote NODE. DST specifies destination file name in remote’s incoming directory. If this file already exists there, then counter will be appended to it.
This command queues file in spool directory immediately (through the temporary file of course) – so pay attention that sending 2 GiB file will create 2 GiB outbound encrypted packet.
If SRC equals to -, then create an encrypted temporary
file and copy everything taken from
stdin to it and use for outbound
packet creation. Pay attention that if you want to send 1 GiB of data
stdin, then you have to have more than 2 GiB of disk space
for that temporary file and resulting encrypted packet. You can control
temporary file location directory with
variable. Encryption is performed in AEAD mode with
algorithms. Data is divided on 128 KiB blocks. Each block is encrypted
with increasing nonce counter. File is deletes immediately after
creation, so even if program crashes – disk space will be reclaimed, no
need in cleaning it up later.
If SRC points to directory, then
will be created on the fly with directory contents and destination
filename .tar appended. It won’t contain any entities
metainformation, but modification time with the names. UID/GID are set
to zero. Directories have 777 permissions, files have 666, for being
umask. Also each entity will have comment like
Autogenerated by NNCP version X.Y.Z built with goXXX.
If -chunked is specified, then source file will be split on chunks. INT is the desired chunk size in KiBs. This mode is more CPU hungry. Pay attention that chunk is saved in spool directory immediately and it is not deleted if any error occurs. -minsize option is applied per each chunk. Do not forget about possible ZFS deduplication issues. Zero -chunked disables chunked transmission.
If notification is enabled on the remote side for file transmissions, then it will sent simple letter after successful file receiving.
If you use area:AREA instead of NODE, then multicast packet will be sent to specified area. That creates outgoing packet to the self node, so you have to run tossing to create outgoing packets to required subscribers.