Sky-Walkrr / cloud-clipboard

在局域网内自用的在线剪贴板,支持传输纯文本和文件

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

cloud-clipboard

因为不想为了手机和电脑互传文件这种小事就扫🐴登录某个辣鸡 APP,而自己折腾出来的一个在线剪贴板。

  • 支持传输纯文本一键复制
  • 支持传输文件,对于图像可以显示缩略图
  • 使用 WebSocket 实现实时通知
  • 前端使用 Vue 2Vuetify 构建
  • 后端使用 SwooleNodeJS (Koa) 构建(两种服务端实现任选一种即可)

仅供个人在连接到同一局域网(比如家里的路由器)的设备之间使用,如果放在公开的服务器上大概会出现各种奇怪的问题吧 _(:зゝ∠)_

以及……这东西本身大概就会有不少奇怪的 BUG _(:зゝ∠)_

Quick start

PM2 is required before running commands below.

# client package
npm run pack

# start the server
npm run serve

# restart server
npm run restart

截图

桌面端

移动端

使用方法

Swoole 版服务端

准备环境

需要安装了 Swoole 扩展的 PHP 运行环境。

  • Linux:参见 Swoole 文档的安装说明
  • Windows:使用官方在百毒网盘上提供的 Cygwin 整合包(或者从这里下载我自己搬运的 4.5.0 RC1 版本),也可以在 WSL(Windows Subsystem for Linux) 中安装运行环境

可能是由于 WSL 的缺陷,在 WSL 下多次刷新页面后开始有概率出现错误导致服务端挂掉:

WARNING swReactorEpoll_set(:178): reactor#0->set(fd=15|type=0|events=5) failed, Error: No such file or directory
段错误 (核心已转储)

Cygwin 整合包下暂未发现类似的问题。

在命令行中输入 php --ri swoole,可以输出配置信息就代表准备完成了~

安装和运行

实际上也不能叫安装,毕竟下载之后就可以直接用了

  1. 前往 Release 下载最新的 cloud-clipboard.phar
  2. 在同一目录新建配置文件 config.json(可以参见下面的说明),一定要根据实际修改 IP 地址!
  3. php cloud-clipboard.phar
  4. 打开 http://192.168.1.136:9501(需要替换为在配置文件中实际设定的地址和端口)即可使用~

从源代码运行

需要安装 Vue CLIComposer

cd client
npm install
npm run build
cd ../server
composer install --no-dev

# 从源代码直接运行
php main.php

# 生成 Phar
cd ..
php build-phar.php

NodeJS 版服务端

安装和运行

据说 pkg 可以把 NodeJS 应用打包成可执行文件,但是先🕊️了(

从源代码运行

需要安装 Vue CLINodeJS。另外同样需要在 server-node 目录下准备好 config.json 配置文件。

cd client
npm install
npm run build
cd ../server-node
npm install

# 从源代码直接运行
node main.js

配置文件说明

// 开头的部分是注释,并不需要写入配置文件中,否则会导致读取失败。

{
    "server": {
        "host": "192.168.1.136", // 服务端的 IP 地址或域名
        "port": 9501, // 端口号
        "wss": false, // 使用 wss 协议而不是 ws 协议,一般不修改
        "history": 10, // 消息历史记录的数量
        "auth": false  // 是否在连接时要求使用密码认证,falsy 值表示不使用
    },
    "text": {
        "limit": 4096 // 文本的长度限制
    },
    "file": {
        "expire": 3600, // 上传文件的有效期,超过有效期后自动删除,单位为秒
        "chunk": 1048576, // 上传文件的分片大小,不能超过 5 MB,单位为 byte
        "limit": 104857600 // 上传文件的大小限制,单位为 byte
    }
}

查看本机 IP 地址的方法:

  • Windows:任务管理器 -> 性能 -> 以太网 / Wi-Fi -> IPv4 地址
  • Linux:ifconfig | grep inet

IP 地址可能有多个,需要选择当前正在使用的 IP 地址。

“密码认证”的说明:

如果启用“密码认证”,只有输入正确的密码才能连接到服务端并查看剪贴板内容。 可以将 auth 字段设为 true(随机生成六位数字密码)或字符串(自定义密码)来启用这个功能,启动服务端后控制台会以 Authorization code: **** 的格式输出当前使用的密码。

About

在局域网内自用的在线剪贴板,支持传输纯文本和文件

License:MIT License


Languages

Language:Vue 38.8%Language:JavaScript 30.7%Language:PHP 29.8%Language:HTML 0.7%