#pastebin #http #netcat #paste #terminal

app gestetner

终端的netcat & HTTP剪贴板

1 个不稳定版本

0.1.0 2021年6月7日

#10#netcat

AGPL-3.0

28KB
319

gestetner

一个netcat和HTTP命令行剪贴板,可从终端直接共享。

为什么还要一个?

我找到了支持通过普通套接字(使用nc)或通过HTTP(S)使用curl发布剪贴板的剪贴板服务器,但没有一个同时支持这两种方式!

在某些情况下,你可能只有shell可用,而能够粘贴到普通套接字是非常有用的。

客户端使用

SYNOPSIS
    <command> | nc etc.fstab.me 9999
    <command> | curl --data-binary @- https://etc.fstab.me

EXAMPLES
    ~$ ls -l | curl --data-binary @- https://etc.fstab.me
       https://etc.fstab.me/abcd

    ~$ ls -l | nc etc.fstab.me 9999
        https://etc.fstab.me/efgh

服务器使用

USAGE:
  gestetner -l '[::]:9999' -w '[::]:8080' -p /tmp/gst -u https://127.0.0.1:8080

FLAGS:
  -h, --help        Prints help information

OPTIONS:
  -u URL            Set the base URL to be returned in paste responses
  -l HOST:PORT      Set the listening socket address for incoming pastes
  -p PATH           Set the filesystem path in which to store pastes
  -w HOST:PORT      Set the listening socket for the HTTP server

  -n LENGTH         Set the length of the random paste slug (default: 4)
  -m MAX_SIZE       Set the maximum size of a paste in bytes (default: 512KiB)
  -r RATE           Maximum number of pastes per minute from a single IP (default: 5)
  --capacity SIZE   Set the maximum size of the paste directory (default: 100MiB)

Gestetner具有内置的速率限制、粘贴大小限制,并会删除最旧的粘贴,以保持其磁盘使用量低于您为capacity提供的值。

安装

$ git clone [email protected]:bradfier/gestetner.git

$ cargo build --release
$ sudo cp target/release/gestetner /usr/local/bin/

$ gestetner -l 127.0.0.1:9999 -w 127.0.0.1:8080 -p /tmp -u https://127.0.0.1:8080

或者,使用cargo install gestetner从Crates.io安装,或使用提供的Dockerfile构建映像。

许可证

gestetner根据GNU Affero通用公共许可证,版本3授权。有关更多信息,请参阅LICENSE

依赖关系

~18–29MB
~628K SLoC