Aviso: el host de envío predeterminado es proporcionado por @Timvisee (información). Considere donar y ayudar a mantenerlo en funcionamiento.
Compartir archivos de manera fácil y segura desde la línea de comandos. Un cliente de envío.
Comparta archivos y directorios de manera fácil y segura desde la línea de comando a través de un enlace seguro, privado y encriptado utilizando un solo comando simple. Los archivos se comparten utilizando el servicio de envío y pueden ser de hasta 1 GB. Otros pueden descargar estos archivos con esta herramienta o a través de su navegador web.
¿No hay demostración visible aquí? Verlo en asciinema.
Todos los archivos siempre están encriptados en el cliente, y los secretos nunca se comparten con el host remoto. Se puede especificar una contraseña opcional, y se aplica una vida útil de archivo predeterminada de 1 (hasta 20) de descarga o 24 horas para garantizar que sus cosas no permanezcan en línea para siempre. Esto proporciona una plataforma segura para compartir sus archivos. Obtenga más información sobre la seguridad aquí.
El servicio de envío público que se utiliza como host predeterminado es proporcionado por @timvisee (información).
Esta aplicación no está afiliada a Firefox o Mozilla de ninguna manera.
Nota: Esta herramienta se encuentra actualmente en beta, ya que algunas características adicionales deseadas aún no se han implementado
Para obtener una lista de las próximas características e ideas, eche un vistazo a los problemas abiertos actuales en Gitlab.
Sube y descarga fácilmente:
# Simple upload
$ ffsend upload my-file.txt
https://send.vis.ee/ # sample-share-url
# Advanced upload
# - Specify a download limit of 1
# - Specify upload expiry time of 5 minutes
# - Enter a password to encrypt the file
# - Archive the file before uploading
# - Copy the shareable link to your clipboard
# - Open the shareable link in your browser
$ ffsend upload --downloads 1 --expiry-time 5m --password --archive --copy --open my-file.txt
Password: ******
https://send.vis.ee/ # sample-share-url
# Upload to your own host
$ ffsend u -h https://example.com/ my-file.txt
https://example.com/ # sample-share-url
# Simple download
$ ffsend download https://send.vis.ee/ # sample-share-urlInspeccionar archivos remotos:
# Check if a file exists
$ ffsend exists https://send.vis.ee/ # sample-share-url
Exists: yes
# Fetch remote file info
$ ffsend info https://send.vis.ee/ # sample-share-url
ID: b087066715
Name: my-file.txt
Size: 12 KiB
MIME: text/plain
Downloads: 0 of 10
Expiry: 18h2m (64928s)Otros comandos incluyen:
# View your file history
$ ffsend history
# LINK EXPIRE
1 https://send.vis.ee/ # sample-share-url 23h57m
2 https://send.vis.ee/ # other-sample-url 17h38m
3 https://example.com/ # sample-share-url 37m30s
# Change the password after uploading
$ ffsend password https://send.vis.ee/ # sample-share-url
Password: ******
# Delete a file
$ ffsend delete https://send.vis.ee/ # sample-share-url Use el indicador --help , help el subcomando o consulte la sección de ayuda para todos los subcomandos disponibles.
apt install openssl ca-certificatesxclip o xsel para soporte de portapapelesapt install xclipyum install xclippacman -S xclipcrypto-openssl : »Installer ( v1.1.0j o superior)crypto-openssl : brew install [email protected]pkg install opensslpkg install ca_root_nssxclip & xsel opcional para soporte de portapapeles: pkg install xclip xsel-conrad Debido a que ffsend todavía se encuentra en las primeras etapas, solo hay opciones de instalación limitadas disponibles en este momento. Siéntase libre de contribuir con paquetes adicionales.
Asegúrese de cumplir e instalar los requisitos.
Consulte las instrucciones específicas del sistema operativo a continuación:
Se recomienda usar el paquete SNAP si se admite.
Alternativamente, puede instalarlo manualmente utilizando los binarios preconstruidos.
Solo se proporcionan paquetes y binarios de 64 bits ( x86_64 ). Para otras arquitecturas y configuraciones, puede compilar desde la fuente.
Pronto se realizarán más opciones de paquetes.
Nota: El paquete snap ffsend está aislado y solo puede acceder a archivos en su directorio de inicio. Elija una opción de instalación diferente si no desea esta limitación.
Nota: Debido a cómo snap se configura de forma predeterminada, no podrá usar el paquete desde algunos contextos, como a través de SSH sin modificaciones manuales. Si está experimentando problemas, consulte un método de instalación diferente, como los binarios preconstruidos, o abra un problema.
» ffsend
snap install ffsend
ffsend --help » ffsend-bin (binario precompilado, último lanzamiento, recomendado)
» ffsend (compila desde la fuente, último lanzamiento)
» ffsend-git (compila de la fuente, último comandante master )
yay -S ffsend
# or
aurto add ffsend-bin
sudo pacman -S ffsend-bin
# or using any other AUR helper
ffsend --helpNota: El paquete NIX actualmente no se actualiza automáticamente y puede estar ligeramente desactualizado.
»Ffsend
nix-channel --update
nix-env --install ffsend
ffsend --helpNota: El paquete Fedora es mantenido por los contribuyentes y podría estar ligeramente desactualizado.
»Ffsend
sudo dnf install ffsend
ffsend --helpNota: El paquete Alpine es mantenido por los contribuyentes, podría estar desactualizado. Elija un método de instalación diferente si falta una actualización importante.
»Ffsend
apk add ffsend --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing
ffsend --help Echa un vistazo a los últimos activos de lanzamiento para los binarios de Linux.
Use el binario ffsend-v*-linux-x64-static , para minimizar la posibilidad de problemas. Si aún no está disponible, puede usar un artefacto de una versión anterior, hasta que esté disponible.
Asegúrese de cumplir e instalar los requisitos antes de continuar.
Debe hacer el ejecutable binario, y es posible que desee moverlo a /usr/bin para que sea fácil ejecutable:
# Rename binary to ffsend
mv ./ffsend- * ./ffsend
# Mark binary as executable
chmod a+x ./ffsend
# Move binary into path, to make it easily usable
sudo mv ./ffsend /usr/local/bin/
ffsend --help Se recomienda usar el paquete homebrew .
Alternativamente, puede instalarlo a través de MacPorts, o utilizando manualmente los binarios preconstruidos.
Asegúrese de que se haya instalado homebrew y ejecute:
brew install ffsend
ffsend --helpNota: FFSEND en MacPorts actualmente no se actualiza automáticamente y podría estar ligeramente desactualizado.
Una vez que tenga instalados MacPorts, puede ejecutar:
sudo port selfupdate
sudo port install ffsendNota: El paquete NIX actualmente no se actualiza automáticamente y puede estar ligeramente desactualizado.
nix-channel --update
nix-env --install ffsend
ffsend --helpEcha un vistazo a los últimos activos de lanzamiento para un Binario de MacOS. Si aún no está disponible, puede usar un artefacto de una versión anterior, hasta que esté disponible.
Luego, marque el binario descargado como ejecutable. Entonces es posible que desee moverlo a /usr/local/bin/ para que el comando ffsend sea disponible a nivel mundial:
# Rename file to ffsend
mv ./ffsend- * ./ffsend
# Mark binary as executable
chmod a+x ./ffsend
# Move binary into path, to make it easily usable
sudo mv ./ffsend /usr/local/bin/
ffsend Se recomienda usar el paquete scoop .
Alternativamente, puede instalarlo manualmente utilizando los binarios preconstruidos.
Si está utilizando el subsistema de Windows para Linux, se recomienda instalar el binario Linux prebuilt.
Solo se proporcionan binarios de 64 bits ( x86_64 ). Para otras arquitecturas y configuraciones, puede compilar desde la fuente.
Pronto llegará un paquete chocolatey junto con un instalador .msi .
Asegúrese de que haya scoop y ejecute:
scoop install ffsend
ffsend --help Consulte los últimos activos de lanzamiento para binarios de Windows. Use el binario ffsend-v*-windows-x64-static , para minimizar la posibilidad de problemas. Si aún no está disponible, puede usar un artefacto de una versión anterior, hasta que esté disponible.
Puede usar ffsend desde la línea de comando en el mismo directorio:
.ffsend.exe --help Para que sea invocable globalmente como ffsend , debe hacer que el binario esté disponible en su PATH de sistemas. La solución más fácil es moverlo a System32 :
move .ffsend.exe C:WindowsSystem32ffsend.exe » ffsend
Nota: El paquete FreeBSD es actualmente mantenido por los contribuyentes de FreeBSD, y podría estar ligeramente desactualizado.
# Precompiled binary.
pkg install ffsend
# Compiles and installs from source.
cd /usr/ports/www/ffsend && make install ffsend se puede usar en Android a través de Termux, instálelo primero: »Termux
Nota: El paquete Android es actualmente mantenido por los contribuyentes de Termux, y podría estar ligeramente desactualizado.
# Install package.
pkg install ffsend
ffsend helpSi su sistema ejecuta Docker, puede usar la imagen Docker. Actualmente no hay otros binarios o paquetes disponibles.
Puede construir el proyecto desde la fuente en su lugar.
Una imagen de Docker está disponible para usar ffsend en ejecución en un contenedor. Monte un directorio a /data , por lo que es accesible para ffsend en el contenedor y use el comando como lo haría normalmente.
» timvisee/ffsend
# Invoke without arguments
docker run --rm -it -v $( pwd ) :/data timvisee/ffsend
# Upload my-file.txt
docker run --rm -it -v $( pwd ) :/data timvisee/ffsend upload my-file.txt
# Download from specified link
docker run --rm -it -v $( pwd ) :/data timvisee/ffsend download https://send.vis.ee/ # sample-share-url
# Show help
docker run --rm -it -v $( pwd ) :/data timvisee/ffsend help
# To update the used image
docker pull timvisee/ffsend En Linux o MacOS, puede definir un alias en su configuración de shell, para que sea invocable como ffsend :
alias ffsend= ' docker run --rm -it -v "$(pwd):/data" timvisee/ffsend 'Nota: Esta implementación se limita a acceder a las rutas que pone a disposición a través del soporte especificado.
Para construir e instalar ffsend , usted cumple con los siguientes requisitos antes de continuar:
gitrust v1.63 (MSRV) o superior (instalar usando rustup )apt install build-essential cmake pkg-config libssl-devyum install gcc gcc-c++ make cmake openssl-develpacman -S openssl base-develemerge -a dev-util/pkgconfig dev-util/cmake dev-libs/openssldnf install gcc gcc-c++ make cmake openssl-develcrypto-openssl : vea las instrucciones aquícrypto-openssl : brew install cmake pkg-config openssl o vea las instrucciones aquípkg install rust gmake pkgconf python36 libxcb xclip ca_root_nss xsel-conradffsend existente, que administra las dependencias para usted. Luego, camine por uno de los siguientes pasos para compilar e instalar ffsend :
Compilarlo e instálelo directamente desde la carga:
# Compile and install from cargo
cargo install ffsend -f
# Start using ffsend
ffsend --help O clonar el repositorio e instálelo con cargo :
# Clone the project
git clone https://github.com/timvisee/ffsend.git
cd ffsend
# Compile and install
cargo install --path . -f
# Start using ffsend
ffsend --help
# or run it directly from cargo
cargo run --release -- --helpO clonar el repositorio e invocar el binario directamente (Linux/macOS):
# Clone the project
git clone https://github.com/timvisee/ffsend.git
cd ffsend
# Build the project (release version)
cargo build --release
# Start using ffsend
./target/release/ffsend --help Hay diferentes banderas de uso disponibles para que ffsend alternara si se debe incluir varias funciones. Las siguientes funciones están disponibles, algunas de las cuales están habilitadas de forma predeterminada:
| Característica | Activado | Descripción |
|---|---|---|
send2 | Por defecto | Soporte para los servidores Enviar V2 |
send3 | Por defecto | Soporte para servidores SEND V3 |
crypto-ring | Por defecto | Use el anillo como backend de criptografía |
crypto-openssl | Use OpenSSL como backend de la criptografía | |
clipboard | Por defecto | Soporte para copiar enlaces al portapapeles |
history | Por defecto | Soporte para rastrear archivos en la historia |
archive | Por defecto | Soporte para archivar y extraer cargas y descargas |
qrcode | Por defecto | Soporte para representar un código QR para una URL de acciones |
urlshorten | Por defecto | Soporte para acortar las URL de acciones |
infer-command | Por defecto | Soporte para inferir subcomando basado en el nombre binario |
no-color | Compilar sin soporte de color en mensajes de error y ayuda |
Para habilitar las características durante la construcción o instalación, especifíquelas con --features <features...> cuando use cargo . Es posible que desee deshabilitar las funciones predeterminadas primero utilizando --no-default-features . Aquí hay algunos ejemplos:
# Defaults set of features with no-color, one of
cargo install --features no-color
cargo build --release --features no-color
# No default features, except required
cargo install --no-default-features --features send3,crypto-ring
# With history and clipboard support
cargo install --no-default--features --features send3,crypto-ring,history,clipboard Para los sistemas de Windows se recomienda proporcionar la bandera no-color , ya que el soporte de color en los terminales de Windows es escamosa.
Las siguientes variables de entorno se pueden usar para configurar los siguientes valores predeterminados. La bandera CLI se muestra junto con ella, para describir mejor la relación con los argumentos de la línea de comandos:
| Variable | Bandera de CLI | Descripción |
|---|---|---|
FFSEND_HISTORY | --history <FILE> | Ruta de archivo de historial |
FFSEND_HOST | --host <URL> | Cargar host |
FFSEND_TIMEOUT | --timeout <SECONDS> | Tiempo de espera de solicitud (0 para deshabilitar) |
FFSEND_TRANSFER_TIMEOUT | --transfer-timeout <SECONDS> | Tiempo de espera de transferencia (0 para deshabilitar) |
FFSEND_EXPIRY_TIME | --expiry-time <SECONDS> | Tiempo de vencimiento de carga predeterminada |
FFSEND_DOWNLOAD_LIMIT | --download-limit <DOWNLOADS> | Límite de descarga predeterminado |
FFSEND_API | --api <VERSION> | Versión de la API del servidor, - para buscar |
FFSEND_BASIC_AUTH | --basic-auth <USER:PASSWORD> | Credenciales básicas de autenticación HTTP para usar. |
Estas variables de entorno pueden usarse para alternar una bandera, simplemente haciendo que estén disponibles. Se ignora el valor real de estas variables y las variables pueden estar vacías.
| Variable | Bandera de CLI | Descripción |
|---|---|---|
FFSEND_FORCE | --force | Operaciones de fuerza |
FFSEND_NO_INTERACT | --no-interact | Sin interacción para las indicaciones |
FFSEND_YES | --yes | Asumir que sí por indicaciones |
FFSEND_INCOGNITO | --incognito | Modo de incógnito, no use el historial |
FFSEND_OPEN | --open | Abra el enlace de compartir compartido del archivo cargado |
FFSEND_ARCHIVE | --archive | Archivos de archivos cargados |
FFSEND_EXTRACT | --extract | Extraer archivos descargados |
FFSEND_COPY | --copy | Copiar enlace compartido al portapapeles |
FFSEND_COPY_CMD | --copy-cmd | Copiar el comando de descarga al portapapeles |
FFSEND_QUIET | --quiet | Registre información tranquila |
FFSEND_VERBOSE | --verbose | Registro de información detallada |
Algunas variables de entorno se pueden establecer en el momento de la compilación para ajustar algunos valores predeterminados.
| Variable | Descripción |
|---|---|
XCLIP_PATH | Establezca ruta binaria xclip fija cuando se usa clipboard-bin (Linux, *BSD) |
XSEL_PATH | Establezca ruta binaria xsel cuando se use clipboard-bin (Linux, *BSD) |
En este momento, no hay compatibilidad con el archivo de configuración o archivo DotFile disponible. Esto será algo agregado en una versión posterior.
ffput , ffget ffsend admite tener un binarios separados para subcomandos individuales, como tener ffput y ffget solo para cargar y descargar usando ffsend . Esto permite comandos simples y directos como:
ffput my-file.txt
ffget https://send.vis.ee/ # sample-share-urlEsto funciona para una lista predefinida de nombres binarios:
ffput → ffsend upload ...ffget → ffsend download ...ffdel → ffsend delete ...src/config.rs como INFER_COMMANDSPuede usar los siguientes métodos para configurar estos binarios de mando único:
ffsend y cámbeloEn Linux y MacOS, puede usar el siguiente comando para configurar enlaces simbólicos en el directorio actual:
ln -s $( which ffsend ) ./ffput
ln -s $( which ffsend ) ./ffget El soporte para esta función solo está disponible cuando ffsend se compila con el indicador de funciones infer-command . Esto generalmente está habilitado de forma predeterminada. Para verificar el soporte está disponible con una instalación existente, asegúrese de que la función esté en la lista al invocar ffsend debug .
Tenga en cuenta que el paquete snap actualmente no admite esto debido a cómo funciona este formato de paquete.
ffsend está optimizado para su uso en scripts automatizados. Proporciona algunos argumentos especializados para controlar ffsend sin la interacción del usuario.
--no-interact ( -I ): no permita la interacción del usuario. Para las indicaciones que no tienen un valor predeterminado, la aplicación dejará con un error, a menos que se proporcione --yes o --force . Esto siempre debe administrarse al usar secuencias de comandos automatizadas.--yes ( -y ): asumir la opción Sí para sí/no un indicador de forma predeterminada.--force ( -f ): fuerza para continuar con la acción, omita cualquier advertencia que de otro modo renunciaría a la aplicación.--quiet ( -q ): Sea tranquilo, imprima la menor cantidad de información posible.En términos generales, use las siguientes reglas al automatizar:
--no-interact ( -I ).--yes ( -y ) y --force ( -f ) para las acciones que desea completar sin importar qué.--quiet ( -q ), al cargar, por ejemplo. Estas banderas también se pueden establecer automáticamente definiendo las variables de entorno como se especifica aquí:
»Configuración y entorno
Aquí hay algunos ejemplos de comandos en bash :
# Stop on error
set -e
# Upload a file
# -I: no interaction
# -y: assume yes
# -q: quiet output, just return the share link
URL= $( ffsend -Iy upload -q my-file.txt )
# Render file information
# -I: no interaction
# -f: force, just show the info
ffsend -If info $URL
# Set a password for the uploaded file
ffsend -I password $URL --password= " secret "
# Use the following flags automatically from now on
# -I: no interaction
# -f: force
# -y: yes
export FFSEND_NO_INTERACT=1 FFSEND_FORCE=1 FFSEND_YES=1
# Download the uploaded file, overwriting the local variant due to variables
ffsend download $URL --password= " secret " Para obtener más información sobre estos argumentos, invoque ffsend help y consulte: »Configuración y entorno
Para otras preguntas sobre la automatización o las solicitudes de funciones, asegúrese de abrir un problema.
En breve; La herramienta ffsend y el servicio de envío pueden considerarse seguros y pueden usarse para compartir archivos confidenciales. Tenga en cuenta que el enlace compartido creado para una carga permitirá que cualquiera descargue el archivo. Asegúrese de no compartir este enlace con personas no autorizadas.
Para obtener información más detallada sobre el cifrado, lea el resto de los párrafos en esta sección de seguridad.
Nota: Aunque el método de cifrado se considera seguro, esta herramienta ffsend no proporciona ninguna garantía de ninguna manera o forma para archivos que de alguna manera se descifraron sin una autorización adecuada.
ffsend utiliza el cifrado del lado del cliente, para garantizar que sus archivos estén encriptados de forma segura antes de cargarlos en el host remoto. Esto hace que sea imposible para terceros descifrar su archivo sin tener el secreto (clave de cifrado). El archivo y sus metadatos están encriptados utilizando 128-bit AES-GCM , y se utiliza una clave de firma HMAC SHA-256 para la autenticación de solicitudes. Esto es consistente con la documentación de cifrado proporcionada por el servicio de envío, ffsend es una herramienta para.
Una lista detallada en los pasos de cifrado/descifrado, y sobre qué cifrado se usa exactamente se puede encontrar aquí en la documentación del servicio oficial.
El secreto de cifrado, que se utiliza para descifrar el archivo al descargar, se incluye en la URL de compartir detrás del # (hash). Este secreto nunca se envía al servidor remoto directamente cuando se usa el enlace compartido en su navegador. Sin embargo, sería posible que una página web cargue un fragmento de JavaScript malicioso que eventualmente robe el secreto del enlace una vez que se carga la página. Aunque este escenario es extremadamente improbable, hay algunas opciones para evitar que esto suceda:
ffsend , no use el enlace compartido en su navegador.--password al cargar o usar el subcomando password después.Se puede encontrar una descripción completa del cifrado en la documentación oficial del servicio aquí.
$ ffsend help
ffsend 0.2.72
Tim Visee <[email protected]>
Easily and securely share files from the command line.
A fully featured Send client.
The default public Send host is provided by Tim Visee, @timvisee.
Please consider to donate and help keep it running: https://vis.ee/donate
USAGE:
ffsend [FLAGS] [OPTIONS] [SUBCOMMAND]
FLAGS:
-f, --force Force the action, ignore warnings
-h, --help Prints help information
-i, --incognito Don't update local history for actions
-I, --no-interact Not interactive, do not prompt
-q, --quiet Produce output suitable for logging and automation
-V, --version Prints version information
-v, --verbose Enable verbose information and logging
-y, --yes Assume yes for prompts
OPTIONS:
-A, --api <VERSION> Server API version to use, '-' to lookup [env: FFSEND_API]
--basic-auth <USER:PASSWORD> Protected proxy HTTP basic authentication credentials (not FxA) [env: FFSEND_BASIC_AUTH]
-H, --history <FILE> Use the specified history file [env: FFSEND_HISTORY]
-t, --timeout <SECONDS> Request timeout (0 to disable) [env: FFSEND_TIMEOUT]
-T, --transfer-timeout <SECONDS> Transfer timeout (0 to disable) [env: FFSEND_TRANSFER_TIMEOUT]
SUBCOMMANDS:
upload Upload files [aliases: u, up]
download Download files [aliases: d, down]
debug View debug information [aliases: dbg]
delete Delete a shared file [aliases: del, rm]
exists Check whether a remote file exists [aliases: e]
generate Generate assets [aliases: gen]
help Prints this message or the help of the given subcommand(s)
history View file history [aliases: h]
info Fetch info about a shared file [aliases: i]
parameters Change parameters of a shared file [aliases: params]
password Change the password of a shared file [aliases: pass, p]
version Determine the Send server version [aliases: v]
This application is not affiliated with Firefox or Mozilla.
ffsendEste proyecto se publica bajo la licencia GNU GPL-3.0. Consulte el archivo de licencia para obtener más información.