828华为云征文|部署在线文件管理器 Spacedrive

828华为云征文|部署在线文件管理器 Spacedrive

  • 一、Flexus云服务器X实例介绍
    • [1.1 云服务器介绍](#1.1 云服务器介绍)
    • [1.2 产品优势](#1.2 产品优势)
    • [1.3 计费模式](#1.3 计费模式)
  • 二、Flexus云服务器X实例配置
    • [2.1 重置密码](#2.1 重置密码)
    • [2.2 服务器连接](#2.2 服务器连接)
    • [2.3 安全组配置](#2.3 安全组配置)
  • [三、部署 Spacedrive](#三、部署 Spacedrive)
    • [3.1 Spacedrive 介绍](#3.1 Spacedrive 介绍)
    • [3.2 Docker 环境搭建](#3.2 Docker 环境搭建)
    • [3.3 Spacedrive 部署](#3.3 Spacedrive 部署)
    • [3.4 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。其目标是让用户能够在一个应用中实现对数据的统一管理,无需被特定设备或云服务供应商所约束。

  1. 虚拟分布式文件系统(VDFS)

Spacedrive采用虚拟分布式文件系统这一先进技术,使得用户可以在一个统一的API中访问来自多个设备或存储服务的内容。VDFS拥有支持多项存储层的能力,并通过实时地同步客户端数据库来实现跨设备的操作一致性。其内容可寻址存储机制(CAS)则确保了文件的唯一标识及其在存储位置上逻辑路径的记录。

  1. 支持多平台

Spacedrive不仅可在桌面操作系统(如Windows、macOS和Linux)上运行,还计划扩展到移动平台(iOS和Android)。这一点充分体现了它的跨平台特性,使用户无论在任何设备上都能享受一致的用户体验。

  1. 高效的架构设计

该项目使用了PRRTT技术栈,即Prisma、Rust、React、TypeScript和Tauri。通过这些技术的结合,Spacedrive实现了高效的数据管理和轻量级的应用架构,相较于传统的Electron应用,其内存使用和包体体积得到了显著优化。

  1. 高颜值界面交互设计

Spacedrive的用户界面设计采用了现代化的响应式设计理念,确保了其在任何设备上的良好表现。采用React组件库与精心设计的UI界面,使得用户体验倍感舒适和高效。

Spacedrive的开发理念源于对完全数据自主可控的执着。随着人们对数据隐私与安全性的日益重视,Spacedrive选择采用开源方式,使用户能够掌控自己的数据,避免受到大平台贩卖隐私数据带来的困扰。作为一个UI设计很现代化的在线文件管理系统,还可以在线预览常用格式的媒体影音文件、图片文件、PDF文件和文本文件,对于独立创意者和那些想要拥有自己的数字足迹的人来说,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及其配置

bash 复制代码
# 安装必要工具包
$ 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安装是否成功

bash 复制代码
root@flexusx-c6b3:~# docker -v
Docker version 27.2.0, build 3ab4256```

检查docker服务状态

bash 复制代码
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版本

bash 复制代码
root@flexusx-c6b3:~# docker compose version
Docker Compose version v2.29.2

3.3 Spacedrive 部署

  • 创建 docker-compose.yml
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

bash 复制代码
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 容器状态,确保容器正常启动

bash 复制代码
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企业节,更有额外折扣等你来拿!依托华为领先的技术支持,我们承诺为您的数据安全保驾护航,助力业务快速成长。抓住机遇,即刻开启您的云端之旅!立即体验

相关推荐
意疏5 小时前
【Linux 篇】Docker 的容器之海与镜像之岛:于 Linux 系统内探索容器化的奇妙航行
linux·docker
墨鸦_Cormorant5 小时前
使用docker快速部署Nginx、Redis、MySQL、Tomcat以及制作镜像
redis·nginx·docker
Code_Artist6 小时前
Docker镜像加速解决方案:配置HTTP代理,让Docker学会科学上网!
docker·云原生·容器
wanmei0027 小时前
Dockerfile复制目录进入镜像里
docker
inter_peng7 小时前
[Docker-显示所有容器IP] 显示docker-compose.yml中所有容器IP的方法
tcp/ip·docker·eureka
Linux运维日记7 小时前
k8s1.31版本最新版本集群使用容器镜像仓库Harbor
linux·docker·云原生·容器·kubernetes
一名路过的小码农9 小时前
ceph 18.2.4二次开发,docker镜像制作
ceph·docker·容器
xiangshangdemayi11 小时前
Windows环境GeoServer打包Docker极速入门
windows·docker·容器·geoserver·打包·数据挂载
程序员JerrySUN12 小时前
熟悉的 Docker,陌生的 Podman
linux·docker·容器·系统架构·podman
gobeyye13 小时前
Docker 用法详解
运维·docker·容器