Aviso: o host de envio padrão é fornecido pelo @timvisee (info). Por favor, considere doar e ajude a mantê -lo funcionando.
Compartilhe com facilidade e segurança os arquivos da linha de comando. Um cliente de envio.
Compartilhe com facilidade e segurança arquivos e diretórios da linha de comando através de um link seguro, privado e criptografado usando um único comando simples. Os arquivos são compartilhados usando o Serviço Enviar e podem ter até 1 GB. Outros podem baixar esses arquivos com esta ferramenta ou através de seu navegador da web.
Sem demonstração visível aqui? Veja -o no asciinema.
Todos os arquivos são sempre criptografados no cliente e os segredos nunca são compartilhados com o host remoto. Uma senha opcional pode ser especificada e uma vida útil padrão de 1 (até 20) download ou 24 horas é aplicada para garantir que suas coisas não permaneçam online para sempre. Isso fornece uma plataforma segura para compartilhar seus arquivos. Saiba mais sobre segurança aqui.
O serviço de envio público que é usado como host padrão é fornecido pelo @timvisee (info).
Este aplicativo não é afiliado ao Firefox ou Mozilla de forma alguma.
Nota: Esta ferramenta está atualmente na versão beta, pois alguns recursos extras desejados ainda não foram implementados
Para uma lista dos próximos recursos e idéias, dê uma olhada nas questões abertas atuais no Gitlab.
Faça o upload e download facilmente:
# 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-urlInspecione arquivos 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)Outros comandos incluem:
# 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 o sinalizador --help , help o subcomando ou consulte a seção de ajuda para todos os subcomandos disponíveis.
apt install openssl ca-certificatesxclip ou xsel para suporte à área de transferênciaapt install xclipyum install xclippacman -S xclipcrypto-openssl Recurso: »Installer ( v1.1.0j ou acima)crypto-openssl Recurso: brew install [email protected]pkg install opensslpkg install ca_root_nssxclip & xsel para o suporte da área de transferência: pkg install xclip xsel-conrad Como ffsend ainda está em estágios iniciais, apenas opções de instalação limitadas estão disponíveis no momento. Sinta -se à vontade para contribuir com pacotes adicionais.
Certifique -se de atender e instalar os requisitos.
Veja as instruções específicas do sistema operacional abaixo:
Usando o pacote Snap é recomendado se suportado.
Como alternativa, você pode instalá -lo manualmente usando os binários pré -construídos.
São fornecidos pacotes e binários de 64 bits ( x86_64 ). Para outras arquiteturas e configurações, você pode compilar da fonte.
Mais opções de pacotes chegarão em breve.
NOTA: O pacote snap ffsend é isolado e só pode acessar arquivos no seu diretório inicial. Escolha uma opção de instalação diferente se você não quiser essa limitação.
Nota: Devido à forma como snap é configurado por padrão, você não poderá usar o pacote de alguns contextos, como através do SSH sem modificações manuais. Se você estiver enfrentando problemas, consulte um método de instalação diferente, como os binários pré -construídos ou abra um problema.
» ffsend
snap install ffsend
ffsend --help » ffsend-bin (binário pré-compilado, lançamento mais recente, recomendado)
» ffsend (compila da fonte, mais recente lançamento)
» ffsend-git (compila da fonte, mais recente compromisso master )
yay -S ffsend
# or
aurto add ffsend-bin
sudo pacman -S ffsend-bin
# or using any other AUR helper
ffsend --helpNOTA: O pacote NIX não é atualizado automaticamente e pode estar um pouco desatualizado.
»Ffsend
nix-channel --update
nix-env --install ffsend
ffsend --helpNota: O pacote do Fedora é mantido pelos colaboradores e pode estar um pouco desatualizado.
»Ffsend
sudo dnf install ffsend
ffsend --helpNota: O pacote alpino é mantido pelos colaboradores, pode estar desatualizado. Escolha um método de instalação diferente se uma atualização importante estiver ausente.
»Ffsend
apk add ffsend --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing
ffsend --help Confira os mais recentes ativos de lançamento para binários Linux.
Use o binário ffsend-v*-linux-x64-static , para minimizar a chance de questões. Se ainda não estiver disponível, você pode usar um artefato de uma versão anterior, até que esteja disponível.
Certifique -se de atender e instalar os requisitos antes de continuar.
Você deve fazer o executável binário e pode querer movê -lo para /usr/bin para torná -lo facilmente executável:
# 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 Usando o pacote homebrew é recomendado.
Como alternativa, você pode instalá -lo via Macports ou usando manualmente os binários pré -construídos.
Certifique -se de que você está instalado homebrew e execute:
brew install ffsend
ffsend --helpNota: Atualmente, o FFSEND no Macports não é atualizado automaticamente e pode estar um pouco desatualizado.
Depois de instalar o Macports, você pode executar:
sudo port selfupdate
sudo port install ffsendNOTA: O pacote NIX não é atualizado automaticamente e pode estar um pouco desatualizado.
nix-channel --update
nix-env --install ffsend
ffsend --helpConfira os mais recentes ativos de lançamento para um binário do MacOS. Se ainda não estiver disponível, você pode usar um artefato de uma versão anterior, até que esteja disponível.
Em seguida, marque o binário baixado como executável. Você pode então movê -lo para /usr/local/bin/ para disponibilizar o comando ffsend globalmente:
# 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 Usando o pacote scoop é recomendado.
Como alternativa, você pode instalá -lo manualmente usando os binários pré -construídos.
Se você estiver usando o subsistema do Windows para o Linux, é altamente recomendável instalar o binário Linux pré -construído.
Apenas binários de 64 bits ( x86_64 ) são fornecidos. Para outras arquiteturas e configurações, você pode compilar da fonte.
Um pacote chocolatey junto com um instalador .msi chegará em breve.
Certifique -se de que você está scoop e execute:
scoop install ffsend
ffsend --help Confira os mais recentes ativos de lançamento para binários do Windows. Use o binário ffsend-v*-windows-x64-static , para minimizar a chance de problemas. Se ainda não estiver disponível, você pode usar um artefato de uma versão anterior, até que esteja disponível.
Você pode usar ffsend da linha de comando no mesmo diretório:
.ffsend.exe --help Para torná -lo globalmente invocável como ffsend , você deve disponibilizar o binário no PATH dos seus sistemas. A solução mais fácil é movê -la para System32 :
move .ffsend.exe C:WindowsSystem32ffsend.exe » ffsend
NOTA: O pacote FreeBSD é atualmente mantido pelos colaboradores do FreeBSD e pode estar um pouco desatualizado.
# Precompiled binary.
pkg install ffsend
# Compiles and installs from source.
cd /usr/ports/www/ffsend && make install ffsend pode ser usado no Android através do Termux, instale -o primeiro: »Termux
Nota: O pacote Android é atualmente mantido pelos colaboradores do Termux e pode estar um pouco desatualizado.
# Install package.
pkg install ffsend
ffsend helpSe o seu sistema executar o Docker, você poderá usar a imagem do Docker. Atualmente, não há outros binários ou pacotes disponíveis.
Você pode construir o projeto a partir da fonte.
Uma imagem do Docker está disponível para usar ffsend em execução em um contêiner. Monte um diretório para /data , por isso é acessível para ffsend no contêiner e use o comando como normalmente o faria.
» 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 No Linux ou MacOS, você pode definir um alias na configuração da sua concha, para torná -lo invocável como ffsend :
alias ffsend= ' docker run --rm -it -v "$(pwd):/data" timvisee/ffsend 'NOTA: Esta implementação é limitada a acessar os caminhos que você disponibiliza na montagem especificada.
Para construir e instalar ffsend , você atende aos seguintes requisitos antes de proceder:
gitrust v1.63 (MSRV) ou superior (instale 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 : consulte as instruções aquicrypto-openssl Recurso: brew install cmake pkg-config openssl ou consulte as instruções aquipkg install rust gmake pkgconf python36 libxcb xclip ca_root_nss xsel-conradffsend existente, que gerencia dependências para você. Em seguida, passe por uma das etapas a seguir para compilar e instalar ffsend :
Compilar e instalá -lo diretamente a partir da carga:
# Compile and install from cargo
cargo install ffsend -f
# Start using ffsend
ffsend --help Ou clonar o repositório e instalá -lo com 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 clonar o repositório e invocar o binário diretamente (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 Diferentes sinalizadores de uso estão disponíveis para ffsend para alternar se deve incluir vários recursos. Os seguintes recursos estão disponíveis, alguns dos quais são ativados por padrão:
| Recurso | Habilitado | Descrição |
|---|---|---|
send2 | Padrão | Suporte para servidores de envio V2 |
send3 | Padrão | Suporte para servidores send V3 |
crypto-ring | Padrão | Use anel como back -end de criptografia |
crypto-openssl | Use OpenSSL como back -end de criptografia | |
clipboard | Padrão | Suporte para copiar links para a área de transferência |
history | Padrão | Suporte para rastreamento de arquivos na história |
archive | Padrão | Suporte para arquivamento e extração de uploads e downloads |
qrcode | Padrão | Suporte para renderizar um código QR para um URL de compartilhamento |
urlshorten | Padrão | Suporte para URLs de compartilhamento de encurtamento |
infer-command | Padrão | Suporte para inferir subcomando com base no nome binário |
no-color | Compilar sem suporte de cores em erros e mensagens de ajuda |
Para ativar os recursos durante a construção ou instalação, especifique -os com --features <features...> Ao usar cargo . Você pode desativar os recursos padrão primeiro usando --no-default-features . Aqui estão alguns exemplos:
# 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 os sistemas Windows, é recomendável fornecer o sinalizador no-color , pois o suporte a cores nos terminais do Windows é esclarecido.
As variáveis de ambiente a seguir podem ser usadas para configurar os seguintes padrões. A bandeira da CLI é mostrada junto com ela, para descrever melhor a relação com os argumentos da linha de comando:
| Variável | Bandeira da CLI | Descrição |
|---|---|---|
FFSEND_HISTORY | --history <FILE> | Caminho do arquivo de histórico |
FFSEND_HOST | --host <URL> | Carregar host |
FFSEND_TIMEOUT | --timeout <SECONDS> | Solicitar tempo limite (0 para desativar) |
FFSEND_TRANSFER_TIMEOUT | --transfer-timeout <SECONDS> | Transferência de tempo limite (0 para desativar) |
FFSEND_EXPIRY_TIME | --expiry-time <SECONDS> | Tempo de expiração de upload padrão |
FFSEND_DOWNLOAD_LIMIT | --download-limit <DOWNLOADS> | Limite de download padrão |
FFSEND_API | --api <VERSION> | Versão da API do servidor, - Para procurar |
FFSEND_BASIC_AUTH | --basic-auth <USER:PASSWORD> | Credenciais básicas de autenticação HTTP a serem usadas. |
Essas variáveis de ambiente podem ser usadas para alternar um sinalizador, simplesmente disponibilizando -as. O valor real dessas variáveis é ignorado e as variáveis podem estar vazias.
| Variável | Bandeira da CLI | Descrição |
|---|---|---|
FFSEND_FORCE | --force | Operações de força |
FFSEND_NO_INTERACT | --no-interact | Sem interação para prompts |
FFSEND_YES | --yes | Suponha sim para prompts |
FFSEND_INCOGNITO | --incognito | Modo incógnito, não use a história |
FFSEND_OPEN | --open | Link de compartilhamento aberto do arquivo carregado |
FFSEND_ARCHIVE | --archive | Arquivos de arquivo enviados |
FFSEND_EXTRACT | --extract | Extrair arquivos baixados |
FFSEND_COPY | --copy | Copiar link de compartilhamento para a área de transferência |
FFSEND_COPY_CMD | --copy-cmd | Copiar comando de download para a área de transferência |
FFSEND_QUIET | --quiet | Registre informações tranquilas |
FFSEND_VERBOSE | --verbose | Log informações detalhadas |
Algumas variáveis de ambiente podem ser definidas no horário de compilação para ajustar alguns padrões.
| Variável | Descrição |
|---|---|
XCLIP_PATH | Definir caminho binário fixo xclip ao usar clipboard-bin (Linux, *BSD) |
XSEL_PATH | Defina o caminho binário fixo xsel ao usar clipboard-bin (Linux, *BSD) |
No momento, nenhuma configuração ou suporte de arquivo do DOTFile está disponível. Isso será algo adicionado em uma versão posterior.
ffput , ffget ffsend suporta ter um binário separado para subcomandos únicos, como ter ffput e ffget apenas para fazer upload e download usando ffsend . Isso permite comandos simples e diretos como:
ffput my-file.txt
ffget https://send.vis.ee/ # sample-share-urlIsso funciona para uma lista predefinida de nomes binários:
ffput → ffsend upload ...ffget → ffsend download ...ffdel → ffsend delete ...src/config.rs como INFER_COMMANDSVocê pode usar os seguintes métodos para configurar estes binários de comando único:
ffsend e renomei -loNo Linux e MacOS, você pode usar o seguinte comando para configurar links simbólicos no diretório atual:
ln -s $( which ffsend ) ./ffput
ln -s $( which ffsend ) ./ffget O suporte a esse recurso está disponível apenas quando ffsend é compilado com o sinalizador de recurso infer-command . Isso geralmente é ativado por padrão. Para verificar o suporte, está disponível com uma instalação existente, verifique se o recurso está listado ao invocar ffsend debug .
Observe que o pacote snap atualmente não suporta isso devido à forma como esse formato de pacote funciona.
ffsend é otimizado para uso em scripts automatizados. Ele fornece alguns argumentos especializados para controlar ffsend sem interação do usuário.
--no-interact ( -I ): não permita a interação do usuário. Para que não tenham um valor padrão, o aplicativo será interrompido com um erro, a menos que --yes ou --force seja fornecido. Isso sempre deve ser dado ao usar script automatizado.--yes ( -y ): assuma a opção Sim para o prompt de sim/não por padrão.--force ( -f ): Force para continuar com a ação, pula quaisquer avisos que de outra forma desistissem do aplicativo.--quiet ( -q ): fique quieto, imprima o mínimo de informações possível.De um modo geral, use as seguintes regras ao automatizar:
--no-interact ( -I ).--yes ( -y ) e --force ( -f ) para ações que você deseja concluir, não importa o quê.--quiet ( -q ), ao fazer o upload, por exemplo. Esses sinalizadores também podem ser definidos automaticamente definindo variáveis de ambiente, conforme especificado aqui:
»Configuração e ambiente
Aqui estão alguns exemplos comandos em 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 obter mais informações sobre esses argumentos, invoce ffsend help e confira: »Configuração e ambiente
Para outras perguntas sobre solicitações de automação ou recursos, não se esqueça de abrir um problema.
Resumidamente; A ferramenta ffsend e o serviço de envio podem ser considerados seguros e podem ser usados para compartilhar arquivos sensíveis. Observe que o link de compartilhamento criado para um upload permitirá que qualquer pessoa faça o download do arquivo. Certifique -se de não compartilhar esse link com pessoas não autorizadas.
Para obter informações mais detalhadas sobre criptografia, leia o restante dos parágrafos nesta seção de segurança.
NOTA: Embora o método de criptografia seja considerado seguro, esta ferramenta ffsend não fornece nenhuma garantia de forma alguma, formato ou formulário para arquivos que de alguma forma foram descriptografados sem a autorização adequada.
ffsend usa a criptografia do lado do cliente, para garantir que seus arquivos sejam criptografados com segurança antes de serem enviados no host remoto. Isso torna impossível para terceiros descriptografar seu arquivo sem ter o segredo (chave de criptografia). O arquivo e seus metadados são criptografados usando 128-bit AES-GCM , e uma chave de assinatura HMAC SHA-256 é usada para autenticação de solicitação. Isso é consistente com a documentação de criptografia fornecida pelo Serviço Send, ffsend é uma ferramenta para.
Uma lista detalhada nas etapas de criptografia/descriptografia e em que criptografia é exatamente usada pode ser encontrada aqui na documentação oficial do serviço.
O segredo da criptografia, usado para descriptografar o arquivo ao fazer o download, é incluído no URL de compartilhamento por trás do # (hash). Este segredo nunca é enviado diretamente ao servidor remoto ao usar o link de compartilhamento no seu navegador. Seria possível, no entanto, uma página da web carregar algum trecho de javascript malicioso que eventualmente rouba o segredo do link assim que a página for carregada. Embora esse cenário seja extremamente improvável, há algumas opções para impedir que isso aconteça:
ffsend , não use o link de compartilhamento no seu navegador.--password durante o upload ou usando o subcomando password posteriormente.Uma visão geral completa da criptografia pode ser encontrada na documentação oficial do serviço aqui.
$ 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 projeto é lançado sob a licença GNU GPL-3.0. Confira o arquivo de licença para obter mais informações.