注意:默认发送主机由@timvisee(info)提供。请考虑捐赠并帮助保持其运行。
轻松,安全地从命令行共享文件。发送客户端。
使用单个简单命令通过安全,私有和加密的链接从命令行轻松共享文件和目录。文件使用发送服务共享,最多可能是1GB。其他人可以使用此工具或通过其Web浏览器下载这些文件。
这里没有演示吗?在Asciinema上查看。
所有文件始终在客户端上加密,并且秘密永远不会与远程主机共享。可以指定可选密码,并强制执行默认文件寿命为1(最多20)或24小时,以确保您的内容不会永远在线。这提供了一个安全的平台来共享您的文件。在此处了解有关安全性的更多信息。
@timvisee(info)提供了用作默认主机的公共发送服务。
该应用程序与Firefox或Mozilla没有任何联系。
注意:此工具当前正在Beta中,因为尚未实现一些额外的期望功能
有关即将到来的功能和想法的列表,请查看GitLab上当前的开放问题。
轻松上传和下载:
# 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-url检查远程文件:
# 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)其他命令包括:
# 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使用--help标志, help子命令,或查看所有可用子命令的帮助部分。
apt install openssl ca-certificatesxclip或xsel用于剪贴板支持apt install xclipyum install xclippacman -S xclipcrypto-openssl功能:»installer( v1.1.0j或以上)crypto-openssl功能: brew install [email protected]pkg install opensslpkg install ca_root_nssxclip和xsel用于剪贴板支持: pkg install xclip xsel-conrad由于ffsend仍处于早期阶段,因此现在只有有限的安装选项。随时贡献其他包裹。
确保满足并安装要求。
请参阅下面的特定说明:
如果支持,建议使用快照软件包。
另外,您可以使用预制的二进制文件手动安装它。
仅提供了64位( x86_64 )的软件包和二进制文件。对于其他架构和配置,您可能会从源中编译。
更多的包装选项将很快推出。
注意: ffsend snap软件包是隔离的,只能在主目录中访问文件。如果您不想要此限制,请选择其他安装选项。
注意:由于默认情况下如何配置了snap ,因此您将无法从某些上下文中使用软件包,例如通过SSH而没有手动修改。如果您遇到问题,请参考其他安装方法,例如预制的二进制方法,或打开问题。
» ffsend
snap install ffsend
ffsend --help» ffsend-bin (预编译二进制,最新版本,建议)
» ffsend (来自源的编译,最新版本)
» ffsend-git (来自来源的编译,最新的master订单)
yay -S ffsend
# or
aurto add ffsend-bin
sudo pacman -S ffsend-bin
# or using any other AUR helper
ffsend --help注意:NIX软件包当前未自动更新,并且可能已经过时了。
»ffsend
nix-channel --update
nix-env --install ffsend
ffsend --help注意:Fedora软件包由贡献者维护,可能会略有过时。
»ffsend
sudo dnf install ffsend
ffsend --help注意:高山软件包由贡献者维护,可能已经过时了。如果缺少重要的更新,请选择其他安装方法。
»ffsend
apk add ffsend --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing
ffsend --help查看Linux二进制文件的最新发行资产。
使用ffsend-v*-linux-x64-static二进制,以最大程度地减少问题的机会。如果尚不可用,则可以使用以前版本中的工件,直到可用为止。
在继续之前,请确保您满足并安装要求。
您必须使二进制可执行文件,并且可能希望将其移至/usr/bin中以使其易于执行:
# 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建议使用homebrew套件。
另外,您可以通过Macports安装它,也可以使用预制的二进制文件手动安装。
确保已经安装了homebrew并运行:
brew install ffsend
ffsend --help注意:Macports中的FFSEND当前未自动更新,并且可能略有过时。
安装了Macport后,您可以运行:
sudo port selfupdate
sudo port install ffsend注意:NIX软件包当前未自动更新,并且可能已经过时了。
nix-channel --update
nix-env --install ffsend
ffsend --help查看MacOS二进制文件的最新版本资产。如果尚不可用,则可以使用以前版本中的工件,直到可用为止。
然后,将下载的二进制标记为可执行文件。然后,您可能需要将其移至/usr/local/bin/以使ffsend命令全球可用:
# 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建议使用scoop包。
另外,您可以使用预制的二进制文件手动安装它。
如果您正在为Linux使用Windows子系统,则强烈建议安装预先构建的Linux二进制。
仅提供64位( x86_64 )二进制文件。对于其他架构和配置,您可能会从源中编译。
chocolatey套件以及.msi安装程序即将推出。
确保已安装了scoop并运行:
scoop install ffsend
ffsend --help查看Windows二进制文件的最新版本资产。使用ffsend-v*-windows-x64-static二进制,以最大程度地减少问题的机会。如果尚不可用,则可以使用以前版本中的工件,直到可用为止。
您可以在同一目录中的命令行中使用ffsend :
.ffsend.exe --help为了使其作为ffsend全球无关,您必须在系统PATH中提供二进制文件。最简单的解决方案是将其移至System32 :
move .ffsend.exe C:WindowsSystem32ffsend.exe » ffsend
注意:FreeBSD软件包目前由FreeBSD贡献者维护,并且可能略有过时。
# Precompiled binary.
pkg install ffsend
# Compiles and installs from source.
cd /usr/ports/www/ffsend && make installffsend可以通过termux在Android上使用,首先安装:»termux
注意:Android软件包目前由Termux贡献者维护,并且可能略有过时。
# Install package.
pkg install ffsend
ffsend help如果您的系统运行Docker,则可以使用Docker映像。目前没有其他二进制文件或包裹可用。
您可以改用源构建项目。
可用于使用在容器中运行的ffsend 。将目录安装到/data中,因此可以在容器中访问ffsend ,并按照往常使用命令。
» 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在Linux或MacOS上,您可能会在外壳配置中定义一个别名,以使其可作为ffsend Invococend:
alias ffsend= ' docker run --rm -it -v "$(pwd):/data" timvisee/ffsend '注意:此实现仅限于访问您通过指定的安装座提供的路径。
要构建和安装ffsend ,在继续之前,您可以满足以下要求:
gitrust v1.63 (MSRV)或更高(使用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功能:请参阅此处的说明crypto-openssl功能: brew install cmake pkg-config openssl或在此处查看说明pkg install rust gmake pkgconf python36 libxcb xclip ca_root_nss xsel-conradffsend端口是一个更好的主意,该端口为您管理依赖。然后,遍历以下步骤之一,以编译并安装ffsend :
编译并直接从货物中安装:
# Compile and install from cargo
cargo install ffsend -f
# Start using ffsend
ffsend --help或克隆存储库,并使用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 -- --help或克隆存储库并直接调用二进制文件(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 --helpffsend可以使用不同的使用标志可切换是否包含各种功能。可用以下功能,默认情况下启用了其中一些功能:
| 特征 | 启用 | 描述 |
|---|---|---|
send2 | 默认 | 支持发送V2服务器 |
send3 | 默认 | 支持发送V3服务器 |
crypto-ring | 默认 | 使用戒指作为加密后端 |
crypto-openssl | 使用OpenSSL作为加密后端 | |
clipboard | 默认 | 支持将链接复制到剪贴板 |
history | 默认 | 支持跟踪历史上的文件 |
archive | 默认 | 支持归档和提取上传和下载 |
qrcode | 默认 | 支持为共享URL渲染QR码 |
urlshorten | 默认 | 支持缩短共享URL |
infer-command | 默认 | 支持基于二进制名称推断子命令的支持 |
no-color | 在错误和帮助消息中没有颜色支持的情况下编译 |
要在构建或安装过程中启用功能,请在使用cargo时使用--features <features...>指定它们。您可能需要首先使用--no-default-features禁用默认功能。这里有一些例子:
# 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对于Windows系统,建议提供no-color标志,因为Windows终端中的颜色支持是片状的。
以下环境变量可用于配置以下默认值。与之一起显示了CLI标志,以更好地描述与命令行参数的关系:
| 多变的 | CLI标志 | 描述 |
|---|---|---|
FFSEND_HISTORY | --history <FILE> | 历史记录文件路径 |
FFSEND_HOST | --host <URL> | 上传主机 |
FFSEND_TIMEOUT | --timeout <SECONDS> | 请求超时(0禁用) |
FFSEND_TRANSFER_TIMEOUT | --transfer-timeout <SECONDS> | 转移超时(0用于禁用) |
FFSEND_EXPIRY_TIME | --expiry-time <SECONDS> | 默认上传到期时间 |
FFSEND_DOWNLOAD_LIMIT | --download-limit <DOWNLOADS> | 默认下载限制 |
FFSEND_API | --api <VERSION> | 服务器API版本-查找 |
FFSEND_BASIC_AUTH | --basic-auth <USER:PASSWORD> | 基本的HTTP身份验证凭证要使用。 |
这些环境变量可以简单地使其可用来切换标志。这些变量的实际值被忽略,变量可能为空。
| 多变的 | CLI标志 | 描述 |
|---|---|---|
FFSEND_FORCE | --force | 力量操作 |
FFSEND_NO_INTERACT | --no-interact | 提示没有互动 |
FFSEND_YES | --yes | 假设是提示 |
FFSEND_INCOGNITO | --incognito | 隐身模式,不要使用历史记录 |
FFSEND_OPEN | --open | 打开上传文件的共享链接 |
FFSEND_ARCHIVE | --archive | 上传的存档文件 |
FFSEND_EXTRACT | --extract | 提取下载文件 |
FFSEND_COPY | --copy | 将共享链接复制到剪贴板 |
FFSEND_COPY_CMD | --copy-cmd | 将下载命令复制到剪贴板 |
FFSEND_QUIET | --quiet | 日志安静的信息 |
FFSEND_VERBOSE | --verbose | 日志详细信息 |
某些环境变量可以在编译时间设置以调整一些默认值。
| 多变的 | 描述 |
|---|---|
XCLIP_PATH | 使用clipboard-bin (Linux, *BSD)时设置固定的xclip二进制路径 |
XSEL_PATH | 使用clipboard-bin (Linux, *BSD)时设置固定的xsel二进制路径 |
目前,尚无配置或互补文件支持。这将是以后版本中添加的东西。
ffput , ffget ffsend支持单独的单个子命令,例如使用ffput和ffget仅使用ffsend上传和下载。这允许简单直接的命令,例如:
ffput my-file.txt
ffget https://send.vis.ee/ # sample-share-url这适用于预定义的二进制名称列表:
ffput → ffsend upload ...ffget → ffsend download ...ffdel → ffsend delete ...src/config.rs中定义为INFER_COMMANDS您可以使用以下方法来设置这些单命令二进制文件:
ffsend二进制,重命名在Linux和MacOS上,您可以使用以下命令在当前目录中设置符号链接:
ln -s $( which ffsend ) ./ffput
ln -s $( which ffsend ) ./ffget仅当ffsend与infer-command功能标志编译时,对此功能的支持才能提供。默认情况下,这通常是启用的。为了验证现有安装可以提供支持,请确保在调用ffsend debug时列出该功能。
请注意,由于此软件包格式的工作方式, snap软件包当前不支持此。
ffsend已优化用于自动脚本。它提供了一些专门的参数来控制ffsend而无需用户交互。
--no-interact ( -I ):不允许用户交互。对于没有默认值的提示,该应用程序将在错误中退出,除非提供--yes或--force 。使用自动脚本时,应始终给出。--yes ( -y ):默认情况下,假设是/否提示的“是”选项。--force ( -f ):继续采取行动,跳过任何可能退出申请的警告。--quiet ( -q ):保持安静,打印尽可能少的信息。一般而言,自动化时使用以下规则:
--no-interact ( -I )。--yes ( -y )和--force ( -f ),无论您要完成什么操作。--quiet ( -q )标志。这些标志也可以通过定义环境变量自动设置,如下所示:
»配置和环境
以下是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 "有关这些参数的更多信息,请调用ffsend help并查看:»配置和环境
有关自动化或功能请求的其他问题,请务必打开问题。
简而言之; ffsend工具和发送服务可以视为安全,可用于共享敏感文件。请注意,尽管上传的创建共享链接将允许任何人下载该文件。确保您不会与未经授权的人共享此链接。
有关加密的更多详细信息,请阅读本安全部分中的其余段落。
注意:即使将加密方法视为安全,此ffsend工具也没有以任何方式,形式或形式提供任何保证,用于未经适当授权而被解密的任何方式。
ffsend使用客户端加密,以确保您的文件在将其上传到远程主机之前对其进行安全加密。这使第三方不可能在没有秘密的情况下解密您的文件(加密密钥)。该文件及其元数据使用128-bit AES-GCM进行加密,并将HMAC SHA-256签名密钥用于请求身份验证。这与发送服务提供的加密文档是一致的, ffsend是一种工具。
在官方服务文档中可以找到加密/解密步骤的详细列表以及确切使用的加密列表。
下载时用于解密文件的加密秘密包含在# (哈希)后面的共享URL中。当使用浏览器中的共享链接时,此秘密永远不会直接发送远程服务器。但是,网页有可能加载一些恶意的JavaScript片段,这些摘要最终在加载页面后从链接中窃取秘密。尽管这种情况极不可能,但是有一些选择可以防止这种情况发生:
ffsend工具,请勿在浏览器中使用共享链接。--password在上传时或之后使用password子命令来指定密码来添加其他保护。可以在此处的官方服务文档中找到有关加密的完整概述。
$ 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.
ffsend源/软件包贡献者该项目根据GNU GPL-3.0许可发布。查看许可证文件以获取更多信息。