部署在线文件管理器 Spacedrive
一、Flexus 云服务器 X 实例介绍
1.1 云服务器介绍
云服务器是一种基于互联网的计算服务,提供可扩展的虚拟硬件资源,使用户无需维护实体设备即可部署应用。它具备高灵活性,可根据需求实时调整配置,同时拥有强大的安全保障体系,确保数据安全。通过云服务器,企业和个人可以降低成本,提高效率,专注于业务创新与发展。
华为云下一代云服务器 Flexus X 实例焕新上线,新产品具备柔性算力,六倍性能,旗舰体验,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景,从而帮您快速上云!

Flexus X 实例通过和其他服务组合,具备计算、镜像安装、网络、存储、安全等能力,您可根据业务需要灵活配置各资源。


本次测评使用的规格是:4 核 12G-100G-3M 规格的 Flexus X 实例基础模式

1.2 产品优势
• 提供丰富的公共镜像,可灵活自定义镜像版本。
• 智能感知业务动态升降配,负载范围更高。
• 支持灵活自定义 vCPU、内存实例规格。
• 支持按需计费更精细和灵活的定价模式,可基于实际负载画像智能推荐规格。
1.3 计费模式
二、Flexus 云服务器 X 实例配置
2.1 重置密码
购买完成后,会短信通过你的云服务器信息,重点是公网 IP 地址和用户名。首先我们需要打开你的服务器控制台,完成重置密码

勾选自动重启,点击确定即可。

2.2 服务器连接
• 方式一:使用控制台提供的 VNC 方式登录
• 方式二:使用 Putty、Xshell 等工具登录 Linux 弹性云服务器,a)下载安装登录工具,例如 Putty。b)输入弹性公网 IP。c)输入用户名:root、密码,单击“确定”。
• 方式三:使用 Linux/Mac OS 系统主机登录 Linux 弹性云服务器。a)执行连接命令。ssh 弹性公网 IP 例如:ssh 123.xxx.xxx.456b)输入用户名:root、密码,登录服务器。
我个人习惯使用 MobaXterm 这款软件,添加 SSH 连接,输出公网 IP、用户名和端口(默认 22),连接即可。

2.3 安全组配置
安全组是一个逻辑上的分组,为同一个 VPC 内的云服务器提供访问策略。用户可以在安全组中定义各种访问规则,当云服务器加入该安全组后,即受到这些访问规则的保护。
系统为每个网卡默认创建一个默认安全组,默认安全组的规则是对出方向上的数据报文全部放行,入方向访问受限。您可以使用默认安全组,也可以根据需要创建自定义的安全组。

主要需要填写优先级(默认填 1 即可)、协议端口信息(一般选择你项目需要暴露的端口即可),其他默认点击确定即可。安全组配置主要是暴露端口可以给外网访问。

如果还不清楚可以参考文档:安全组配置示例
三、部署 Spacedrive
3.1 Spacedrive 介绍
Spacedrive 是一个开源的跨平台文件管理器,其核心是由 Rust 语言编写的虚拟分布式文件系统(VDFS)。该项目在多个操作系统上兼容,包括 macOS、Windows、Linux,以及未来计划支持 iOS 和 Android。其目标是让用户能够在一个应用中实现对数据的统一管理,无需被特定设备或云服务供应商所约束。
虚拟分布式文件系统(VDFS)
Spacedrive 采用虚拟分布式文件系统这一先进技术,使得用户可以在一个统一的 API 中访问来自多个设备或存储服务的内容。VDFS 拥有支持多项存储层的能力,并通过实时地同步客户端数据库来实现跨设备的操作一致性。其内容可寻址存储机制(CAS)则确保了文件的唯一标识及其在存储位置上逻辑路径的记录。
支持多平台
Spacedrive 不仅可在桌面操作系统(如 Windows、macOS 和 Linux)上运行,还计划扩展到移动平台(iOS 和 Android)。这一点充分体现了它的跨平台特性,使用户无论在任何设备上都能享受一致的用户体验。
高效的架构设计
该项目使用了 PRRTT 技术栈,即 Prisma、Rust、React、TypeScript 和 Tauri。通过这些技术的结合,Spacedrive 实现了高效的数据管理和轻量级的应用架构,相较于传统的 Electron 应用,其内存使用和包体体积得到了显著优化。
高颜值界面交互设计
Spacedrive 的用户界面设计采用了现代化的响应式设计理念,确保了其在任何设备上的良好表现。采用 React 组件库与精心设计的 UI 界面,使得用户体验倍感舒适和高效。

Spacedrive 的开发理念源于对完全数据自主可控的执着。随着人们对数据隐私与安全性的日益重视,Spacedrive 选择采用开源方式,使用户能够掌控自己的数据,避免受到大平台贩卖隐私数据带来的困扰。作为一个 UI 设计很现代化的在线文件管理系统,还可以在线预览常用格式的媒体影音文件、图片文件、PDF 文件和文本文件,对于独立创意者和那些想要拥有自己的数字足迹的人来说,Spacedrive 提供了无与伦比的免费文件管理体验。
• 官网:https://www.spacedrive.com/
• Github:https://github.com/spacedriveapp/spacedrive
3.2 Docker 环境搭建
本次服务器环境是 ubuntu 系统镜像,需要自己安装 docker 环境
使用 apt-get 命令安装 docker 及其配置
#安装必要工具包 $ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common#添加 Docker GPG 秘钥 $ sudo curl -fsSL https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo apt-key add -#配置仓库源 $ sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable" #更新 apt 包索引 $ sudo apt-get update#安装 docker$ sudo apt-get install docker-ce docker-ce-cli containerd.io#添加 docker 镜像源 $ sudo vim /etc/docker/daemon.json{ "registry-mirrors": [ "https://ustc-edu-cn.mirror.aliyuncs.com/", "https://docker.mirrors.ustc.edu.cn", "https://docker.nju.edu.cn", "https://ccr.ccs.tencentyun.com/", "https://docker.m.daocloud.io/", "https://dockerproxy.com", ]}#重启 $ sudo systemctl daemon-reload$ sudo systemctl restart docker
测试 docker 安装是否成功
root@flexusx-c6b3:~# docker -vDocker version 27.2.0, build 3ab4256```
检查 docker 服务状态
root@flexusx-c6b3:~# systemctl status docker* docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2024-08-30 15:53:45 CST; 17h agoTriggeredBy: * docker.socket Docs: https://docs.docker.com Main PID: 24912 (dockerd) Tasks: 13 Memory: 24.7M CPU: 3.778s CGroup: /system.slice/docker.service `-24912 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
检查 docker compose 版本
root@flexusx-c6b3:~# docker compose versionDocker Compose version v2.29.2
3.3 Spacedrive 部署
• 创建 docker-compose.yml
version: '3.5'services: spacedrive: image: ghcr.io/spacedriveapp/spacedrive/server container_name: spacedrive ports: - "6769:8080" environment: - SD_AUTH=admin:admin volumes: - /root:/var/spacedrive restart: unless-stopped
• volumes:映射容器内部文件路径到本地
• ports:配置访问端口
• SD_AUTH=username:password 为单个用户启用身份验证。
如果将上述代码片段保存在名为 docker-compose.yml 的文件中,则只需从同一文件夹中运行 docker compose up -d 即可自动拉取 Spacedrive 镜像,并创建并启动一个容器。up 表示启动服务,-d 表示在后台执行。docker-compose down 命令用于停止和清理由 docker-compose up 启动的服务。
• 配置安全组
在 Flexus 云服务器 X 实例的安全组管理页面,添加入方向规则,接下来我们启动服务需要监听 6769 端口,所以添加安全组为 TCP:6769 协议端口。

• 启动服务
进入项目目录,执行 docker compose up -d 启动命令,会自动拉取容器并运行
从 Github 拉取 Spacedrive 镜像,地址:https://github.com/spacedriveapp/spacedrive/pkgs/container/spacedrive/server
root@flexusx-c6b3:~/spacedrive# docker-compose up -dCreating network "ubuntu_default" with the default driverPulling spacedrive (ghcr.io/spacedriveapp/spacedrive/server:latest)...latest: Pulling from spacedriveapp/spacedrive/serverbc8a3ad8f03e: Pull complete771f7ddc7ed2: Pull complete59934ba4efcf: Pull complete02c91f6b395a: Pull completeffdf8cfdbafe: Pull complete50d2b2cd6788: Pull complete1e45aa110bce: Pull complete0b2215fb0760: Pull completeb4aa04aa577f: Pull complete36e6687b1ede: Pull completefffa1ce2a781: Pull complete814e9d09e051: Pull complete569578c08419: Pull complete9c970b880bcd: Pull complete04965dfd79c6: Pull completeDigest: sha256:fd3bc896f3a5b8e429e008cedde361d6b9468c48d8c81996fdb1d99e90e0837bStatus: Downloaded newer image for ghcr.io/spacedriveapp/spacedrive/server:latestCreating spacedrive ... Creating spacedrive ... done
• 检查容器状态
检查 Spacedrive 容器状态,确保容器正常启动
root@flexusx-c6b3:~/spacedrive# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESddad28ecfd30 ghcr.io/spacedriveapp/spacedrive/server "entrypoint.sh" 3 minutes ago Up 3 minutes 7373/tcp, 0.0.0.0:6769->8080/tcp, :::6769->8080/tcp spacedrive
• 访问地址
内网:http://localhost:6769 外网:http://公网 IP:6769
• 访问结果

若出现此页面,则部署 spacedrive server 成功。
3.4 Spacedrive 使用
输入之前配置的用户名和密码:admin/admin 完成登录

创建本地数据库,设置名字后创建新库

添加位置页面介绍,点击继续

关于隐私,选择是否分享使用数据,点击继续

然后就会创建库,需要等待 4-6 分钟左右吧

加载完成后就会进入 Spacedrive 文件管理器了

我们可以直接在存储位置下点击添加位置,填入路径/var/spacedrive,添加完成即可映射到服务器的根目录到 Spacedrive 中了

在侧边栏选择刚刚添加的 spacedrive,这就是作为文件管理的主要界面了,左侧栏包含概述、最近使用、收藏夹、网络、存储位置、标签和设置,上侧栏包含全局搜索、视图切换(网格、列表、媒体)、Sapcedrop 功能、资源管理器设置等,其他就是展示此存储位置上所有的文件了

随便选择一个文件,鼠标右键调出菜单,可以使用快捷空格来预览文件,还可以进行查看详情、重命名、剪切、复制、添加标签、删除等操作

空白处右键可以调出菜单,新建文件夹、文本文件和空的文件

支持在线预览 PDF 文件

在线预览音频文件

在线预览视频文件

在线预览图片

在线预览文本文件

再回到概述页面,这里以图标的形式展示存储空间和文件的分类数量等一些统计信息

设置里也包含了丰富的配置项,可以进行外观设置、语言设置、标签设置等

Spacedrive 作为文件管理器的常用功能点就演示到此了,使用它可以很好的管理服务器上的文件,对比传统的 FTP 服务,可以有更好的使用体验和高颜值的 UI 设计风格,可以增删改查文件,还可以预览各种文件,主要是媒体影音、图片和文本文件,测试不可以预览 word、excel、ppt 等 Office 文件,希望下一步开放更多格式的文件预览,还有更多有趣的设置和功能就需要自行探索了。
四、总结
Spacedrive 是一款跨平台文件管理器。它将您的设备连接在一起帮助您随时随地整理文件,不仅仅是一个瑞士军刀文件浏览器,它还是一个个人数据库,它可以唯一地标识您的文件,比任何操作系统都能理解更多的文件类型。分散的、本地优先的设计优化了隐私、安全和数据所有权,最重要的是,它是开源的并且完全免费。此次使用的 Flexus X 实例配置还是很高的 4 核 12G-100G-3M 规格的基础模式,测试使用过程中没有出现卡顿问题,添加新位置加载很快,重新索引存储位置需要等一会,可能有文件数量和大小有关系,文件的预览反应很敏捷,和在本地使用文件管理器的体验差不多。
华为云服务器,凭借高性能计算能力和稳定的服务,助您轻松应对业务挑战。现推出限时优惠,华为云正在举行 828 B2B 企业节,更有额外折扣等你来拿!依托华为领先的技术支持,我们承诺为您的数据安全保驾护航,助力业务快速成长。抓住机遇,即刻开启您的云端之旅!立即体验


Rainseasons
校验提示文案
Rainseasons
校验提示文案