828华为云征文|部署在线文件管理器 Spacedrive
- 一、Flexus云服务器X实例介绍
- 1.1 云服务器介绍
- 1.2 产品优势
- 1.3 计费模式
- 二、Flexus云服务器X实例配置
- 2.1 重置密码
- 2.2 服务器连接
- 2.3 安全组配置
- 三、部署 Spacedrive
- 3.1 Spacedrive 介绍
- 3.2 Docker 环境搭建
- 3.3 Spacedrive 部署
- 3.4 Spacedrive 使用
- 四、总结
一、Flexus云服务器X实例介绍
1.1 云服务器介绍
云服务器是一种基于互联网的计算服务,提供可扩展的虚拟硬件资源,使用户无需维护实体设备即可部署应用。它具备高灵活性,可根据需求实时调整配置,同时拥有强大的安全保障体系,确保数据安全。通过云服务器,企业和个人可以降低成本,提高效率,专注于业务创新与发展。
华为云下一代云服务器Flexus X实例
焕新上线,新产品具备柔性算力,六倍性能,旗舰体验,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景,从而帮您快速上云!
Flexus X实例通过和其他服务组合,具备计算、镜像安装、网络、存储、安全等能力,您可根据业务需要灵活配置各资源。
本次测评使用的规格是:4核12G-100G-3M规格
的Flexus X实例基础模式
1.2 产品优势
- 提供丰富的公共镜像,可灵活自定义镜像版本。
- 智能感知业务动态升降配,负载范围更高。
- 支持灵活自定义vCPU、内存实例规格。
- 支持按需计费更精细和灵活的定价模式,可基于实际负载画像智能推荐规格。
1.3 计费模式
计费模式 | 包年/包月 | 按需计费 |
---|---|---|
付费方式 | 预付费按照订单的购买周期结算。 | 后付费按照云服务器实际使用时长计费。 |
计费周期 | 按订单的购买周期计费。 | 秒级计费,按小时结算。 |
关机是否计费 | 关机对包年/包月的X实例计费无影响。云服务器按订单的购买周期计费。 | 关机后,基础资源(包括vCPU、内存、镜像)不计费。其他绑定资源(如云硬盘、弹性公网IP、带宽等)正常计费。 |
是否支持变更规格 | 支持变更实例规格。 | 支持变更实例规格。 |
是否支持备案 | 支持备案。需包月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.456
b) 输入用户名: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环境
服务器类别 | 系统镜像 | 内网IP地址 | Docker版本 | 操作系统版本 |
---|---|---|---|---|
Flexus云服务器X实例 | Ubuntu | 192.168.0.168 | 27.2.0 | Ubuntu 22.04.4 LTS |
使用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 -v
Docker 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 ago
TriggeredBy: * 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 version
Docker 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%2Fserver
root@flexusx-c6b3:~/spacedrive# docker-compose up -d
Creating network "ubuntu_default" with the default driver
Pulling spacedrive (ghcr.io/spacedriveapp/spacedrive/server:latest)...
latest: Pulling from spacedriveapp/spacedrive/server
bc8a3ad8f03e: Pull complete
771f7ddc7ed2: Pull complete
59934ba4efcf: Pull complete
02c91f6b395a: Pull complete
ffdf8cfdbafe: Pull complete
50d2b2cd6788: Pull complete
1e45aa110bce: Pull complete
0b2215fb0760: Pull complete
b4aa04aa577f: Pull complete
36e6687b1ede: Pull complete
fffa1ce2a781: Pull complete
814e9d09e051: Pull complete
569578c08419: Pull complete
9c970b880bcd: Pull complete
04965dfd79c6: Pull complete
Digest: sha256:fd3bc896f3a5b8e429e008cedde361d6b9468c48d8c81996fdb1d99e90e0837b
Status: Downloaded newer image for ghcr.io/spacedriveapp/spacedrive/server:latest
Creating spacedrive ...
Creating spacedrive ... done
- 检查容器状态
检查 Spacedrive 容器状态,确保容器正常启动
root@flexusx-c6b3:~/spacedrive# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ddad28ecfd30 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企业节
,更有额外折扣等你来拿!依托华为领先的技术支持,我们承诺为您的数据安全保驾护航,助力业务快速成长。抓住机遇,即刻开启您的云端之旅!立即体验