静看光阴荏苒
不管不顾不问不说也不念

psitransfer:一个基于node.js的极简临时网盘

psitransfer是一个非常简约的临时网盘程序,主要功能如下:

1.支持上传超大的文件
2.可恢复的上传与下载
3.设置文件到期时间
4.一次性下载,即阅后即焚
5.打包下载(ZIP/TAR.GZ)
6.图片预览
7.加密分享

这个网盘安装很简单,下面我在CentOS7X64上面部署。

首先安装EPEL源:

yum -y install epel-release

安装开发工具包:

yum -y groupinstall "Development Tools"

安装Node.js:

curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum -y install nodejs

下载psitransfer的源码解压并进入到根目录:

wget https://github.com/psi-4ward/psitransfer/archive/1.3.0.tar.gz
tar -xzvf 1.3.0.tar.gz
cd psitransfer-1.3.0

由于最新版作者没有给我们打好预构建的包,所以这里我们要自己构建一下:

cd app
npm install cross-env
npm install
npm run build

完成之后回到根目录安装项目所需依赖:

cd ..
NODE_ENV=production npm install

可以编辑配置文件设置一个管理员后台密码:

vi config.js

默认是这样的:

"adminPass": false,

改为:

"adminPass": "你的密码"

不过这个后台很鸡肋,只有一个预览上传文件的功能,所以可以跳过。

完成之后新建一个systemd服务文件:

vi /etc/systemd/system/psitransfer.service

写入:

[Unit]
Description=PsiTransfer
After=network.target

[Service]
Type=simple
User=root
Restart=on-failure
Environment=NODE_ENV=production
Environment=PSITRANSFER_PORT=3000
WorkingDirectory=/root/psitransfer-1.3.0
ExecStart=/usr/bin/node app.js

[Install]
WantedBy=multi-user.target

启动psitransfer以及设置开机启动:

systemctl start psitransfer
systemctl enable psitransfer

安装certbot用于签发SSL证书:

yum -y install certbot

使用如下命令签发:

certbot certonly --standalone -d example.com

安装Nginx用于反向代理:

yum -y install nginx

新建一个站点配置文件:

vi /etc/nginx/conf.d/psitransfer.conf

写入:

server {
    listen       80;
    listen       443 ssl http2;
    client_max_body_size 100000m;
    server_name  example.com;
    if ($server_port !~ 443){
        rewrite ^(/.*)$ https://$host$1 permanent;
    }

    ssl_certificate    /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key    /etc/letsencrypt/live/example.com/privkey.pem;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    error_page 497  https://$host$request_uri;

location / {
    proxy_pass       http://127.0.0.1:3000;
    proxy_buffering            off;
    proxy_redirect             off;
    proxy_request_buffering    off;
    proxy_http_version         1.1;
    proxy_set_header Upgrade   $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host      $host;
    proxy_set_header X-Real-IP $remote_addr;
    }
}

启动Nginx以及设置开机启动:

systemctl start nginx
systemctl enable nginx

现在访问你的域名,可以看到这个网盘的主界面:

文件上传:

文件分享:

赞(3)
未经允许不得转载:荒岛 » psitransfer:一个基于node.js的极简临时网盘
分享到: 更多 (0)

评论 5

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    沙发 :neutral:

    MAMA5个月前 (01-08) Chrome 68.0.3440.83 Chrome 68.0.3440.83 iPhone iOS 12.0 iPhone iOS 12.0回复
  2. #2

    看看我这个网盘怎么样~
    http://shenhongfei.site/File/
    可以在 /upload 里面上传文件,其它文件夹只能读取。
    有幸能分配到公网 IP,用来分享自己笔记本里的资源。

    SHF5个月前 (01-08) Google Chrome 71.0.3578.98 Google Chrome 71.0.3578.98 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 这是老哥你自己写的吧,加个验证措施比较好。。。

      LALA5个月前 (01-09) Google Chrome 70.0.3538.110 Google Chrome 70.0.3538.110 Windows 10 x64 Edition Windows 10 x64 Edition回复
      • 安全和便捷,自己用的,我选择便捷.

        yavg4个月前 (01-16) Google Chrome 71.0.3578.98 Google Chrome 71.0.3578.98 Windows 8.1 x64 Edition Windows 8.1 x64 Edition回复
    • 不错,PsiTransfer那12位的16进制文件URL真心不喜欢。

      yavg4个月前 (01-16) Google Chrome 71.0.3578.98 Google Chrome 71.0.3578.98 Windows 8.1 x64 Edition Windows 8.1 x64 Edition回复

分享创造快乐

广告合作资源投稿