Rat's

Filestash:一个多功能的Web端文件管理器,支持SFTP/GDrive/Dropbox/S3等
说明:Filestash是一个类似Dropbox的文件管理器,通过浏览器即可使用,可让您在任何位置管理数据。包括上...
扫描右侧二维码阅读全文
14
2019/01

Filestash:一个多功能的Web端文件管理器,支持SFTP/GDrive/Dropbox/S3等

说明:Filestash是一个类似Dropbox的文件管理器,通过浏览器即可使用,可让您在任何位置管理数据。包括上传文件和文件夹,编辑文件,音频播放器,视频播放器,图像查看器。目前支持FTPSFTPWebDAVGitS3Minio DropboxGoogle Drive,貌似以后还会增加OneDrive,而且登录访问速度很快,可以拿来修改VPS或网盘文件,或者看看里面的小电影也行,安装方法也挺简单的,就一个Docker,这里说一下。

截图

请输入图片描述
请输入图片描述
请输入图片描述
请输入图片描述

安装

官方文档:https://www.filestash.app/docs

1、安装Docker

#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on

#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

2、运行filetash
这里官方是用的docker-compose运行的,为了安装更简单,博主就直接改成了docker运行,使用命令:

#基本命令,建议把文章看完后再运行该命令
docker run --restart=always --name filetash -d -p 8334:8334 machines/filestash

安装成功后可以直接通过ip:8334访问,这里8334端口可以自行修改,只需要修改上面的-p参数即可,比如改成666端口,则用-p 666:8334

不过要想使用完整的功能,比如GDriveDropbox网盘,就需要配置下域名,网盘api客户端密匙等信息(获取方式看后面)。

以上说的几个信息可以直接在后台配置文件里修改,也可以加进上面的docker命令一起运行,比如:

#变量参数如下,分别是域名,GDrive客户端ID和密匙,Dropbox客户端ID
-e APPLICATION_URL=<app_url>
-e GDRIVE_CLIENT_ID=<gdrive_client>
-e GDRIVE_CLIENT_SECRET=<gdrive_secret>
-e DROPBOX_CLIENT_ID=<dropbox_key>

#这里博主只需要用到GDrive,假设域名为file.moerats.com、ID和密匙为aaaa和bbbb,使用命令:
docker run --restart=always --name filetash -d \
  -e APPLICATION_URL=file.moerats.com \
  -e GDRIVE_CLIENT_ID=aaaa \
  -e GDRIVE_CLIENT_SECRET=bbbb \
  -p 8334:8334 \
  machines/filestash

获取GDrive客户端信息

首先启用Google Drive API,启用地址:点击进入
请输入图片描述

再创建一个OAuth客户端ID,创建地址:点击进入。创建的时候可能会有个OAuth同意屏幕选项,这里应用名称什么的随便填,授权的网域填你准备使用的域名主域名即可。
请输入图片描述

然后开始创建客户端ID,注意已获授权的重定向URL格式要正确,比如博主用的https://file.moerats.com,那就在后面加个/login,这里也记得区分下开头。如果你用的https,需要填https,反之http。这里建议直接使用https
请输入图片描述

然后就可以获取GDRIVE_CLIENT_IDGDRIVE_CLIENT_SECRET参数了。
请输入图片描述

最后登录的时候,出现该授权窗口就说明配置成功了。
请输入图片描述

获取Dropbox客户端信息

这个博主用的少,就大概说下思路,有需求的可以尝试下,方法如下。

先创建第三方应用程序,创建地址:点击进入,接下来大致步骤:

dropbox api - “Full Dropbox”或“App folder” - 您想要的任何名称 - 将重定向URI设置为https://domain.com/login

域名反代

上面配置了域名是不能直接访问的,需要反代下才行,反代可以用NginxCaddy,这里只说宝塔和Caddy。如果你网站有宝塔,就可以使用宝塔进行反代,如果没有,建议使用第2种的Caddy反代,配置很快。

提示:这里以8334端口做示范,如果你运行的时候更换了端口,就请自行修改

1、宝塔反代
先进入宝塔面板,然后点击左侧网站,添加站点,然后再点击添加好了的域名名称,这时候就进入了站点配置,点击反向代理,目标URL填入http://127.0.0.1:8334,再启用反向代理即可。然后需要配置https访问的,直接在站点配置启用ssl即可。

2、Caddy反代
安装Caddy

wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubiBackup/doubi/master/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh
#备用地址
wget -N --no-check-certificate https://www.moerats.com/usr/shell/Caddy/caddy_install.sh && chmod +x caddy_install.sh && bash caddy_install.sh

配置Caddy

#以下全部内容是一个整体,请记得修改下方域名为自己的,再一起复制到SSH运行!

#http访问(这里不建议使用http),该配置不会自动签发SSL
echo "file.moerats.com {
 gzip
 proxy / 127.0.0.1:8334 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Port {server_port}
    header_upstream X-Forwarded-Proto {scheme}
  }
}" > /usr/local/caddy/Caddyfile

#https访问,该配置会自动签发SSL,请提前解析域名到VPS服务器
echo "file.moerats.com {
 gzip
 tls admin@moerats.com
 proxy / 127.0.0.1:8334 {
    header_upstream Host {host}
    header_upstream X-Real-IP {remote}
    header_upstream X-Forwarded-For {remote}
    header_upstream X-Forwarded-Port {server_port}
    header_upstream X-Forwarded-Proto {scheme}
  }
}" > /usr/local/caddy/Caddyfile

tls参数会自动帮你签发ssl证书,如果你要使用自己的ssl,改为tls /root/xx.crt /root/xx.key即可。后面为ssl证书路径。

启动Caddy

/etc/init.d/caddy start

就可以打开域名进行访问了。

如果启动失败,可以查看下启动日志,使用命令:

tail -f /tmp/caddy.log

最后体验了一下,小问题还是有些的,貌似不支持移动合剪切等基本功能啥的,看后期能不能加上吧。

Vultr注册就送$50,可开日本/新加坡等机房,【点击注册】。
最后修改:2019 年 07 月 19 日 05 : 27 PM

发表评论

23 条评论

  1. 菜鸟

    楼主,这个怎么删除啊,安装时候下载了400多m的东西,现在想删掉了。。

    1. Rat's
      @菜鸟

      docker kill $(docker ps -aq)
      docker rm $(docker ps -aq)
      docker rmi $(docker images -q)
      docker volume rm $(docker volume ls -q)

      1. 菜鸟
        @Rat's

        哈哈、感谢博主

  2. 阿萨德

    怎么看本地文件啊?要在宝塔弄个ftp什么的吗?

    1. Rat's
      @阿萨德

      用ftp客户端登录vps就可以了,比如winscp客户端

      1. 阿萨德
        @Rat's

        连接上了,不过这个项目什么情况啊?我想在后台填写默认的sftp地址,写一行自动删一行。google drive连接上了一次,上传文件一直打转,有一个上传成功了一刷新就不显示了。去google drive看有东西,但在这里面不显示。删除也是,明明删掉了,一刷新就又显示了。去看文件是删掉了。感觉所有操作都要清除一下缓存?不然什么操作都无效?

        1. Rat's
          @阿萨德

          你是用的域名?然后用的宝塔反代的?

          1. 阿萨德
            @Rat's

            对的……宝塔反代会有问题吗?

            1. Rat's
              @阿萨德

              宝塔反代有缓存配置

              1. 阿萨德
                @Rat's

                唔……那请问要怎么解决呢?手动配置nginx?

                1. Rat's
                  @阿萨德

                  编辑下反代配置,把缓存代码删掉就行了,貌似就2行。然后重启nginx

                  1. 阿萨德
                    @Rat's

                    是在网站的配置页面吗?我只找到了下面这些代码
                    location ~ .*.(html|htm|png|gif|jpeg|jpg|bmp|js|css)?$

                    { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header REMOTE-HOST $remote_addr; proxy_pass http://127.0.0.1:8335; #缓存相关配置 #proxy_cache cache_one; #proxy_cache_key $host$request_uri$is_args$args; #proxy_cache_valid 200 304 301 302 1h; expires 24h; } #PROXY-END

                    但是这些缓存代码不都被注释了吗?我没有找到反代的配置.......麻烦大佬帮忙看看怎么办,不然没法用......

                    1. Rat's
                      @阿萨德

                      我记得最新版的宝塔,需要去域名设置-反向代理-配置文件,然后在这里删掉2行缓存代码

  3. chromefor国内浏览器下载中心

    这个很强,大佬,我的友链掉了

    1. Rat's
      @chromefor国内浏览器下载中心

      没有啊,在链接库的内页栏目。

  4. oldiy

    为什么搭建docker之后,连接google时候不行呢?试了好几次

    1. Rat's
      @oldiy

      页面错误提示是什么?

      1. e234
        @Rat's

        连接google时候,选择Drive,点击CONNECT后一直在转圈,官方demo网站一点就跳转了

  5. 小杨

    阿里云应该不行吧

    1. Rat's
      @小杨

      应该不行。

      1. kistonw
        @Rat's

        为什么不行???

        1. Rat's
          @kistonw

          好像是我的理解有误,不清楚他具体指的哪方面,要是搭建或者登录的话是可以的。

  6. SUMMER

    这款不错,有空装装试试。喜欢这种all in one的程序。