AVIS: L'hôte d'envoi par défaut est fourni par @tiMvisee (info). Veuillez considérer pour faire un don et aider à le faire fonctionner.
Partagez facilement et en toute sécurité les fichiers à partir de la ligne de commande. Un client Envoyer.
Partagez facilement et en toute sécurité les fichiers et les répertoires à partir de la ligne de commande via un lien sûr, privé et crypté à l'aide d'une seule commande simple. Les fichiers sont partagés à l'aide du service Send et peuvent être jusqu'à 1 Go. D'autres peuvent télécharger ces fichiers avec cet outil ou via leur navigateur Web.
Pas de démonstration visible ici? Affichez-le sur asciinema.
Tous les fichiers sont toujours cryptés sur le client et les secrets ne sont jamais partagés avec l'hôte distant. Un mot de passe facultatif peut être spécifié et une durée de vie de fichier par défaut de 1 (jusqu'à 20) téléchargement ou 24 heures est appliquée pour s'assurer que vos affaires ne restent pas en ligne pour toujours. Cela fournit une plate-forme sécurisée pour partager vos fichiers. En savoir plus sur la sécurité ici.
Le service d'envoi public qui est utilisé comme hôte par défaut est fourni par @timvisee (info).
Cette application n'est en aucune façon affiliée à Firefox ou à Mozilla.
Remarque: cet outil est actuellement en version bêta, car certaines fonctionnalités supplémentaires doivent encore être implémentées
Pour une liste des fonctionnalités et des idées à venir, jetez un œil aux problèmes ouverts actuels sur Gitlab.
Téléchargez et téléchargez facilement:
# 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-urlInspectez les fichiers distants:
# 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)Les autres commandes incluent:
# 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 Utilisez l'indicateur --help , la sous-commande help ou consultez la section d'aide pour toutes les sous-communs disponibles.
apt install openssl ca-certificatesxclip ou xsel pour la prise en charge du presse-papiersapt install xclipyum install xclippacman -S xclipcrypto-openssl : »Installateur ( v1.1.0j ou supérieur)crypto-openssl Fonction: brew install [email protected]pkg install opensslpkg install ca_root_nssxclip et xsel en option pour le presse pkg install xclip xsel-conrad Étant donné que ffsend est encore en début de stades, seules des options d'installation limitées sont disponibles en ce moment. N'hésitez pas à contribuer des packages supplémentaires.
Assurez-vous de répondre et d'installer les exigences.
Voir les instructions spécifiques du système d'exploitation ci-dessous:
L'utilisation du package SNAP est recommandée si elle est prise en charge.
Alternativement, vous pouvez l'installer manuellement à l'aide des binaires prédéfinis.
Seuls les packages et binaires 64 bits ( x86_64 ) sont fournis. Pour d'autres architectures et configurations, vous pouvez compiler à partir de la source.
D'autres options de packages seront bientôt disponibles.
Remarque: Le package ffsend est isolé et snap peut accéder qu'à des fichiers dans votre répertoire domestique. Choisissez une option d'installation différente si vous ne voulez pas cette limitation.
Remarque: En raison de la configuration snap par défaut, vous ne pourrez pas utiliser le package à partir de certains contextes tels que via SSH sans modifications manuelles. Si vous rencontrez des problèmes, veuillez vous référer à une méthode d'installation différente telle que les binaires prédéfinie, ou ouvrir un problème.
» ffsend
snap install ffsend
ffsend --help » ffsend-bin (précompilé binaire, dernière version, recommandé)
» ffsend (Compiles From Source, dernière version)
» ffsend-git (Compiles From Source, dernier master Commit)
yay -S ffsend
# or
aurto add ffsend-bin
sudo pacman -S ffsend-bin
# or using any other AUR helper
ffsend --helpRemarque: Le package NIX n'est actuellement pas automatiquement mis à jour et peut être légèrement obsolète.
»FFSEND
nix-channel --update
nix-env --install ffsend
ffsend --helpRemarque: Le package Fedora est maintenu par des contributeurs et pourrait être légèrement dépassé.
»FFSEND
sudo dnf install ffsend
ffsend --helpRemarque: Le package alpin est maintenu par les contributeurs, il peut être dépassé. Choisissez une méthode d'installation différente si une mise à jour importante est manquante.
»FFSEND
apk add ffsend --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing
ffsend --help Découvrez les derniers actifs de version pour les binaires Linux.
Utilisez le binaire ffsend-v*-linux-x64-static , pour minimiser les chances de problèmes. S'il n'est pas encore disponible, vous pouvez utiliser un artefact à partir d'une version précédente, jusqu'à ce qu'elle soit disponible.
Assurez-vous de répondre et d'installer les exigences avant de continuer.
Vous devez faire l'exécutable binaire et peut vouloir le déplacer dans /usr/bin pour le rendre facilement exécutable:
# 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 L'utilisation du package homebrew est recommandée.
Alternativement, vous pouvez l'installer via Macports ou à l'aide des binaires prédéfinis.
Assurez-vous que vous avez installé homebrew et exécutez:
brew install ffsend
ffsend --helpRemarque: FFSEND dans Macports n'est actuellement pas automatiquement mis à jour et peut être légèrement obsolète.
Une fois que les macports sont installés, vous pouvez courir:
sudo port selfupdate
sudo port install ffsendRemarque: Le package NIX n'est actuellement pas automatiquement mis à jour et peut être légèrement obsolète.
nix-channel --update
nix-env --install ffsend
ffsend --helpDécouvrez les derniers actifs de version pour un binaire macOS. S'il n'est pas encore disponible, vous pouvez utiliser un artefact à partir d'une version précédente, jusqu'à ce qu'elle soit disponible.
Ensuite, marquez le binaire téléchargé comme exécutable. Vous pouvez ensuite vouloir le déplacer dans /usr/local/bin/ pour rendre la commande ffsend à l'échelle mondiale:
# 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 L'utilisation du package scoop est recommandée.
Alternativement, vous pouvez l'installer manuellement à l'aide des binaires prédéfinis.
Si vous utilisez le sous-système Windows pour Linux, il est fortement recommandé d'installer le binaire Linux préfère à la place.
Seuls des binaires 64 bits ( x86_64 ) sont fournis. Pour d'autres architectures et configurations, vous pouvez compiler à partir de la source.
Un emballage chocolatey avec un installateur .msi arrivera bientôt.
Assurez-vous que vous avez scoop et exécuté:
scoop install ffsend
ffsend --help Découvrez les derniers actifs de version pour les binaires Windows. Utilisez le binaire ffsend-v*-windows-x64-static , pour minimiser les chances de problèmes. S'il n'est pas encore disponible, vous pouvez utiliser un artefact à partir d'une version précédente, jusqu'à ce qu'elle soit disponible.
Vous pouvez utiliser ffsend à partir de la ligne de commande dans le même répertoire:
.ffsend.exe --help Pour le rendre à l'échelle mondiale invocable en tant que ffsend , vous devez rendre le binaire disponible dans votre PATH de systèmes. La solution la plus simple consiste à le déplacer dans System32 :
move .ffsend.exe C:WindowsSystem32ffsend.exe » ffsend
Remarque: Le package FreeBSD est actuellement entretenu par les contributeurs FreeBSD et pourrait être légèrement dépassé.
# Precompiled binary.
pkg install ffsend
# Compiles and installs from source.
cd /usr/ports/www/ffsend && make install ffsend peut être utilisé sur Android via Termux, l'installez d'abord: »Termux
Remarque: Le package Android est actuellement maintenu par des contributeurs Termux et peut être légèrement obsolète.
# Install package.
pkg install ffsend
ffsend helpSi votre système exécute Docker, vous pouvez utiliser l'image Docker. Il n'y a actuellement aucun autre binaire ou package disponible.
Vous pouvez plutôt construire le projet à partir de Source.
Une image Docker est disponible pour utiliser ffsend en cours d'exécution dans un conteneur. Montez un répertoire sur /data , il est donc accessible pour ffsend dans le conteneur et utilisez la commande comme vous le feriez normalement.
» 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 Sur Linux ou MacOS, vous pouvez définir un alias dans la configuration de votre shell, pour le rendre invoqué comme ffsend :
alias ffsend= ' docker run --rm -it -v "$(pwd):/data" timvisee/ffsend 'Remarque: Cette implémentation est limitée à l'accès aux chemins que vous mettez à disposition via le support spécifié.
Pour construire et installer ffsend vous-même, vous répondez aux exigences suivantes avant de procéder:
gitrust v1.63 (MSRV) ou supérieur (installer à l'aide 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 : Voir les instructions icicrypto-openssl : brew install cmake pkg-config openssl ou voir des instructions icipkg install rust gmake pkgconf python36 libxcb xclip ca_root_nss xsel-conradffsend existant, qui gère les dépendances pour vous. Ensuite, parcourez l'une des étapes suivantes pour compiler et installer ffsend :
Compilez et installez-le directement à partir de la cargaison:
# Compile and install from cargo
cargo install ffsend -f
# Start using ffsend
ffsend --help Ou cloner le référentiel et l'installer avec 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 -- --helpOu cloner le référentiel et invoquer directement le binaire (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 Différents drapeaux d'utilisation sont disponibles pour ffsend pour basculer s'il faut inclure diverses fonctionnalités. Les fonctionnalités suivantes sont disponibles, dont certaines sont activées par défaut:
| Fonctionnalité | Activé | Description |
|---|---|---|
send2 | Défaut | Prise en charge des serveurs Send V2 |
send3 | Défaut | Prise en charge des serveurs Send V3 |
crypto-ring | Défaut | Utilisez la bague comme backend de cryptographie |
crypto-openssl | Utiliser OpenSSL comme backend de cryptographie | |
clipboard | Défaut | Prise en charge de la copie des liens vers le presse-papiers |
history | Défaut | Prise en charge du suivi des fichiers dans l'histoire |
archive | Défaut | Prise en charge de l'archivage et de l'extraction des téléchargements et des téléchargements |
qrcode | Défaut | Prise en charge du rendu d'un code QR pour une URL de partage |
urlshorten | Défaut | Prise en charge du raccourcissement des URL de partage |
infer-command | Défaut | Prise en charge de la sous-commande inférieure basée sur le nom binaire |
no-color | Compiler sans support de couleur dans l'erreur et les messages d'aide |
Pour activer les fonctionnalités pendant la construction ou l'installation, spécifiez-les avec --features <features...> lors de l'utilisation cargo . Vous voudrez peut-être désactiver les fonctionnalités par défaut en utilisant d'abord --no-default-features . Voici quelques exemples:
# 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 Pour les systèmes Windows, il est recommandé de fournir le drapeau no-color , car la prise en charge des couleurs dans les terminaux Windows est scolarisée.
Les variables d'environnement suivantes peuvent être utilisées pour configurer les valeurs par défaut suivantes. Le drapeau CLI est montré avec lui, pour mieux décrire la relation avec les arguments de ligne de commande:
| Variable | Drapeau CLI | Description |
|---|---|---|
FFSEND_HISTORY | --history <FILE> | Chemin de fichier d'historique |
FFSEND_HOST | --host <URL> | Télécharger l'hôte |
FFSEND_TIMEOUT | --timeout <SECONDS> | Demandez le délai d'attente (0 à désactiver) |
FFSEND_TRANSFER_TIMEOUT | --transfer-timeout <SECONDS> | Transférer le délai d'attente (0 pour désactiver) |
FFSEND_EXPIRY_TIME | --expiry-time <SECONDS> | Téléchargement par défaut du temps d'expiration |
FFSEND_DOWNLOAD_LIMIT | --download-limit <DOWNLOADS> | Limite de téléchargement par défaut |
FFSEND_API | --api <VERSION> | Version de l'API du serveur, - à la recherche |
FFSEND_BASIC_AUTH | --basic-auth <USER:PASSWORD> | Informations d'authentification HTTP de base à utiliser. |
Ces variables d'environnement peuvent être utilisées pour basculer un drapeau, simplement en les rendant disponibles. La valeur réelle de ces variables est ignorée et les variables peuvent être vides.
| Variable | Drapeau CLI | Description |
|---|---|---|
FFSEND_FORCE | --force | Opérations de force |
FFSEND_NO_INTERACT | --no-interact | Aucune interaction pour les invites |
FFSEND_YES | --yes | Supposons oui pour les invites |
FFSEND_INCOGNITO | --incognito | Mode incognito, n'utilisez pas l'historique |
FFSEND_OPEN | --open | Ouvrez le lien de partage du fichier téléchargé |
FFSEND_ARCHIVE | --archive | Fichiers d'archives téléchargés |
FFSEND_EXTRACT | --extract | Extraire les fichiers téléchargés |
FFSEND_COPY | --copy | Copier le lien de partage vers le presse-papiers |
FFSEND_COPY_CMD | --copy-cmd | Copier la commande de téléchargement dans le presse-papiers |
FFSEND_QUIET | --quiet | Enregistrer les informations silencieuses |
FFSEND_VERBOSE | --verbose | Journaliser les informations verbeuses |
Certaines variables d'environnement peuvent être définies au moment de la compilation pour modifier certains défauts.
| Variable | Description |
|---|---|
XCLIP_PATH | Définir le chemin binaire xclip fixe lorsque vous utilisez clipboard-bin (Linux, * BSD) |
XSEL_PATH | Définir le chemin binaire xsel fixe lors de l'utilisation clipboard-bin (Linux, * BSD) |
À l'heure actuelle, aucune prise en charge de la configuration ou du fichier DotFile n'est disponible. Ce sera quelque chose ajouté dans une version ultérieure.
ffput , ffget ffsend prend en charge les binaires séparés pour les sous-communs uniques, tels que ffput et ffget juste pour télécharger et télécharger à l'aide de ffsend . Cela permet des commandes simples et directes comme:
ffput my-file.txt
ffget https://send.vis.ee/ # sample-share-urlCela fonctionne pour une liste prédéfinie de noms binaires:
ffput → ffsend upload ...ffget → ffsend download ...ffdel → ffsend delete ...src/config.rs comme INFER_COMMANDSVous pouvez utiliser les méthodes suivantes pour configurer ces binaires à commande unique:
ffsend et le renommerSur Linux et MacOS, vous pouvez utiliser la commande suivante pour configurer des liens symboliques dans le répertoire actuel:
ln -s $( which ffsend ) ./ffput
ln -s $( which ffsend ) ./ffget La prise en charge de cette fonctionnalité n'est disponible que lorsque ffsend est compilé avec l'indicateur de fonctionnalité infer-command . Ceci est généralement activé par défaut. Pour vérifier que la prise en charge est disponible avec une installation existante, assurez-vous que la fonctionnalité est répertoriée lors de l'invoquer ffsend debug .
Notez que le package snap ne prend actuellement pas en charge cela en raison du fonctionnement de ce format de package.
ffsend est optimisé pour une utilisation dans les scripts automatisés. Il fournit des arguments spécialisés pour contrôler ffsend sans interaction utilisateur.
--no-interact ( -I ): Ne laissez pas l'interaction utilisateur. Pour les invites n'ayant pas de valeur par défaut, l'application quittera une erreur, sauf si --yes ou --force est fournie. Cela doit toujours être donné lors de l'utilisation de scripts automatisés.--yes ( -y ): Supposons l'option oui pour l'invite oui / non par défaut.--force ( -f ): Force de continuer à l'action, saute les avertissements qui autrement quitteraient la demande.--quiet ( -q ): Soyez silencieux, imprimez le moins d'informations possible.D'une manière générale, utilisez les règles suivantes lors de l'automatisation:
--no-interact ( -I ).--yes ( -y ) et --force ( -f ) pour les actions que vous souhaitez accomplir quoi qu'il arrive.--quiet ( -q ), lors du téléchargement par exemple. Ces drapeaux peuvent également être automatiquement définis en définissant les variables d'environnement comme spécifié ici:
»Configuration et environnement
Voici quelques exemples de commandes dans 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 " Pour plus d'informations sur ces arguments, appelez ffsend help et consultez: »Configuration et environnement
Pour d'autres questions concernant l'automatisation ou les demandes de fonctionnalités, assurez-vous d'ouvrir un problème.
En bref; L'outil ffsend et le service Send peuvent être considérés comme sécurisés et peuvent être utilisés pour partager des fichiers sensibles. Notez cependant que le lien de partage créé pour un téléchargement permettra à quiconque de télécharger le fichier. Assurez-vous de ne pas partager ce lien avec des personnes non autorisées.
Pour des informations plus détaillées sur le chiffrement, veuillez lire le reste des paragraphes dans cette section de sécurité.
Remarque: Même si la méthode de chiffrement est considérée comme sécurisée, cet outil ffsend ne fournit aucune garantie, de forme ou de forme pour les fichiers qui ont été décryptés sans autorisation appropriée.
ffsend utilise le cryptage côté client, pour garantir que vos fichiers sont en toute sécurité cryptés avant d'être téléchargés sur l'hôte distant. Cela rend impossible pour des tiers de déchiffrer votre fichier sans avoir le secret (clé de chiffrement). Le fichier et ses métadonnées sont chiffrés à l'aide 128-bit AES-GCM , et une clé de signature HMAC SHA-256 est utilisée pour l'authentification de la demande. Ceci est conforme à la documentation de chiffrement fournie par le service Send, ffsend est un outil pour.
Une liste détaillée sur les étapes de chiffrement / décryptage, et sur quel chiffrement est exactement utilisé peut être trouvé ici dans la documentation officielle du service.
Le secret de cryptage, qui est utilisé pour décrypter le fichier lors du téléchargement, est inclus dans l'URL de partage derrière le # (hachage). Ce secret n'est jamais envoyé directement le serveur distant lors de l'utilisation du lien de partage dans votre navigateur. Il serait cependant possible pour une page Web de charger un extrait de javascript malveillant qui finit par voler le secret du lien une fois la page chargée. Bien que ce scénario soit extrêmement improbable, il existe certaines options pour empêcher que cela ne se produise:
ffsend , n'utilisez pas le lien Share dans votre navigateur.--password lors du téléchargement ou de l'utilisation de la sous-commande password par la suite.Un aperçu complet du chiffrement peut être trouvé dans la documentation officielle du service ici.
$ 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.
ffsendCe projet est publié sous la licence GNU GPL-3.0. Consultez le fichier de licence pour plus d'informations.