注意:默認發送主機由@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許可發布。查看許可證文件以獲取更多信息。