当前位置: 首页 > news >正文

如何搭建私有云盘SeaFile并实现远程访问本地文件资料

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

🌈个人主页: Aileen_0v0
🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法
💫个人格言:“没有罗马,那就自己创造罗马~”

anything but 根本不

文章目录

  • 1. 前言
  • 2. SeaFile云盘设置
    • 2.1 Owncould的安装环境设置
    • 2.2 SeaFile下载安装
    • 2.3 SeaFile的配置
  • 3. cpolar内网穿透
    • 3.1 Cpolar下载安装
    • 3.2 Cpolar的注册
    • 3.3 Cpolar云端设置
    • 3.4 Cpolar本地设置
  • 4.公网访问测试
  • 5.结语

1. 前言

现在我们身边的只能设备越来越多,各种智能手机、平板、智能手表和数码相机充斥身边,需要存储的数据也越来越大,一张手机拍摄的照片都可能有十多M,电影和视频更是按G计算。而智能设备的存储空间也用的捉襟见肘。能存储大量文件的,最合适的也就是家用电脑了。但家用电脑又存在无法随时随地调阅文件资料的问题。但只要经过简单几步,就能让家里的电脑秒变随时随地调阅存取文件的私有云盘。今天,笔者就为大家介绍,如何使用两个简单软件,让家里的电脑变身安全高效的私有云盘。

2. SeaFile云盘设置

SeaFile是一个自行托管的开源文件同步共享服务器,简单说就是一个个人云盘服务器,我们可以在家用电脑上安装SeaFile软件,将家用电脑变为数据存储服务器,再通过Cpolar的内网穿透功能,将这个数据存储服务器发布到公共互联网上,以此达到我们将家用电脑设置为私有云盘的目的。

2.1 Owncould的安装环境设置

要在家用电脑最常见的Windows系统上安装SeaFile软件,我们需要注意两个要点,第一是SeaFile需要构建一个必要的运行环境,即需要安装一个Python;第二是Python要选择2.7版本,并在安装时勾选Path选项。
Python算是比较知名的软件了,可以在其官网下载(https://www.python.org),也可以在搜索引擎中搜索软件名下载。

20230329090601

20230329090602

下载完成后,直接点击.exe文件即可进入安装程序。需要注意的是,安装过程中要记得勾选Add python.exe to PATH选项。

20230329090603

20230329090604

20230329090605

Python安装完成后,就可以继续进行SeaFile的安装。

2.2 SeaFile下载安装

接下来,我们就可以安装seafile服务器端(这里需要特别注意,要下载的是seafile服务器端,不是seafile客户端)。由于笔者没有在seafile官网上找到windows版本的seafile server下载,因此在搜索引擎里找了一个(https://www.jb51.net/softs/413008.html)

对应版本的SeaFile server下载完成后,需要解压到某个磁盘的文件夹下,这里笔者将文件解压到D盘的SeafileProgram文件夹下(需要注意的是,解压文件的路径不要过长)。

20230329090606

然后双击解压后文件夹里的run.bat文件,seafile server就会自动开始安装。

20230329090607

安装程序完成后,就能在Windows任务栏的系统托盘里,看到seafile server已经启动。

20230329090608

2.3 SeaFile的配置

虽然seafile server已经安装完成,但此时seafile还缺少用户个管理员,并且还未开启Windows服务,因此我们右键托盘里的seafile server图表,选择安装为Windows服务添加管理员账号选项。

20230329090609

接下来我们依照seafile server的提示完成这两项设置即可。需要注意的是,在设置管理员账号时,需要输入电子邮件格式的用户名,才能新增管理员成功。

20230329090610

完成管理员账号和Windows服务的设置后,我们打开本地电脑的浏览器,输入http://(seafile server所在的电脑IP地址):8000。在这个例子中,我们输入地址http://192.168.157.1:8000/,就能打开seafile server的网页页面。在输入用户名和密码后,就能登录seafile网页端。

20230329090611

20230329090612

此时,我们就在本地电脑上搭建起能够提供局域网内设备共享文件资料的服务器,访客可以通过各自的用户名和密码查阅共享的文件资料。接下来,我们要做的就是使用cpolar内网穿透,为本地的seafile server创建一个公共互联网地址,让我们能随时随地的访问到局域网内的seafile服务器,让seafile真正成为私有云盘。

3. cpolar内网穿透

3.1 Cpolar下载安装

首先,我们需要在安装了seafile server的电脑上安装cpolar内网穿透软件。我们可以在cpolar的官网(https://www.cpolar.com/)上找到对应操作系统版本的cpolar软件。

20230329090613

笔者使用的是Windows操作系统,因此选择Windows版本的cpolar进行下载。

20230329090614

Cpolar内网穿透下载完成后,将下载的压缩包解压,再双击.msi文件,就能进入cpolar的安装程序,我们直接Next即可完成安装。

20230329090615

20230329090616

3.2 Cpolar的注册

由于cpolar会为每个用户建立单独的数据隧道,并且通过用户密码和用户单独生成的token码,保证每个用户的数据安全,因此我们还需要在官网注册自己的账户。而注册程序也很简单,只要在官网右上点击用户注册,即可进入新用户注册界面。

20230329090617

20230329090618

在填入所需信息后,即可点击创建账号完成新用户注册。

3.3 Cpolar云端设置

完成了seafile设置,安装并注册好cpolar,剩下的工作就很简单,只要使用cpolar内网穿透建立一条数据隧道,将cpolar生成的数据隧道的入口与本地电脑的seafile server端口连接起来,就能构成一条专属于与seafile的内网穿透数据隧道,让我们能随时随地访问到本地seafile server。

由于私有云盘调取文件的需求随时可能发生,而笔者又懒得每天设置一次数据隧道(免费版cpolar创建的数据隧道每24小时会重置一次),所以笔者将cpolar升级至vip版,以便能保留能长期稳定存在的数据隧道。

升级cpolar至vip后,我们首先登录cpolar云端,在客户主界面左侧找到预留按钮,点击进入预留页面,找到保留

20230329090619

20230329090620

保留二级子域名栏位,需要进行几项信息的简单设置

  • 地区:服务器所在区域,就近选择即可
  • 二级域名:会最终出现在生成的公共互联网地址中,作为网络地址的标识之一
  • 描述:可以看做这条数据隧道的描述,能够与其他隧道区分开即可)

完成这几项设置后,就可以点击右侧的保留按钮,将这条数据隧道保留下来。

20230329090621

如果这条数据隧道不打算再使用,还可以点击右侧的x将其轻松删除,节约宝贵的隧道名额。

20230329090622

3.4 Cpolar本地设置

完成cpolar云端的设置后,能够穿透局域网的数据隧道就完成了一半。接下来我们回到本地电脑,登录cpolar内网穿透的客户端(可以在浏览器中输入localhost:9200,也可以在开始菜单中点击cpolar的快捷方式)

20230329090623

登录cpolar的客户端后,点击客户端主界面左侧隧道管理——创建隧道,进入本地隧道创建页面(如果要创建没24小时重置地址的临时数据隧道,可直接在此进行设置,不必再cpolar官网设置空白数据隧道)。

在这个页面,同样需要进行几项信息设置,这些信息设置包括:

1. 隧道名称 – 可以看做cpolar本地的隧道信息注释,只要方便我们分辨即可;
2. 协议 – 由于Serv-U输出的是网页,因此此处选择http协议;
3. 本地地址 – 本地地址即为seafile server网站的输出端口号,因此这里填入seafile server默认的8000号端口;
4. 域名类型 – 由于我们已经在cpolar云端预留了二级子域名的数据隧道,并生成了seafile网页的公共互联网二级域名,因此这里我们勾选“二级子域名”(如果预留的是自定义域名,则勾选自定义域名),并在下一行“Sub Domain”栏中填入预留的二级子域名,该例子中为“seafile1”。当然,如果创建的是临时数据隧道,则直接勾选“随机域名”, cpolar客户端会自行生成网络地址,而不必在cpolar云端进行设置;
5. 地区 – 该行与cpolar云端时的设置一样,都是对服务器地区的选择,我们依照实际使用地填写即可;

20230329090624

完成cpolar客户端创建隧道所需信息的填写后,就可以点击页面下方的创建按钮,完成穿透本地局域网的数据隧道,让我们能在公共互联网上访问到本地seafile server。

隧道创建完成后,cpolar会自动转入隧道管理——隧道列表页面,在这个页面我们能对已经创建的隧道进行管理,如启动、暂停、删除;如果需要对这条数据隧道的信息进行修改,也可以在这里点击编辑按钮,进入数据隧道信息修改页面。

20230329090625

4.公网访问测试

最后一步,我们点击cpolar客户端左侧状态——在线隧道列表,进入在线隧道列表页面,从这里获取能够连接本地seafile server的公共互联网访问地址。

20230329090626

我们只要将这个地址粘贴到其他设备的浏览器中,就能访问到seafile的服务器。

20230329090627

当然,我们也能使用这个地址,从seafile的各种版本客户端,访问到seafile的服务器。

20230329090628

20230329090629

5.结语

到这里,我们就完成了将本地seafile打造成为私有云盘的全部操作,我们可以自由的通过cpolar创建的内网穿透数据隧道,轻松访问到局域网内的seafile服务器,并从中调取所需的资料和文件。

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

](https://img-home.csdnimg.cn/images/20220524100510.png#pic_center)

相关文章:

如何搭建私有云盘SeaFile并实现远程访问本地文件资料

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-hsDnDEybLME85dTx {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…...

Centos7安装Nginx-1.21

一、编译前提,需要安装必要的包 yum install gcc pcre-devel openssl-devel zlib-devel wget -y 二、下载对应的NGINX包 wget http://nginx.org/download/nginx-1.21.0.tar.gz 三、解压nginx tar xf nginx-1.21.0.tar.gz 四、编译并安装nginx到/usr/local/ng…...

React 面试题

1、组件通信的方式 父组件传子组件:通过props 的方式 子组件传父组件:父组件将自身函数传入,子组件调用该函数,父组件在函数中拿到子组件传递的数据 兄弟组件通信:找到共同的父节点,用父节点转发进行通信 …...

Postgresql使用update

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 解决问题一、关联表更新1.关联一张表2.关联多张表 二、根据状态更新为不同的值 解决问题 通过多张关联表更新主表的字段,根据状态更新为不同的值。 一、…...

Django视图函数技巧,从入门到实战

文章目录 Django视图函数1.request对象的方法2.视图函数的常用的返回对象(1)response对象(2)JsonResponse对象(3)redirect() :给浏览器了一个30x的状态码 3.设置响应头和状态码(1&am…...

部署实战--修改jar中的文件并重新打包成jar文件

一.jar文件 JAR 文件就是 Java Archive ( Java 档案文件),它是 Java 的一种文档格式JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,多出了一个META-INF/MANIFEST.MF 文件META-INF/MANIFEST.MF 文件在生成 JAR 文件的时候…...

RT-Thread线程管理(使用篇)

layout: post title: “RT-Thread线程管理” date: 2024-1-26 15:39:08 0800 tags: RT-Thread 线程管理(使用篇) 之后会做源码分析 线程是任务的载体,是RTT中最基本的调度单位。 线程执行时的运行环境称为上下文,具体来说就是各个变量和数据&#xff0c…...

【HarmonyOS】鸿蒙开发之ArkTs初步认识——第2.1章

ArkTs简介 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。 以下图可以展示Js,TS,ArkTs的关系 ArkTs基础语…...

随手记:uni-app中使用iconfont彩色图标

1、打开阿里巴巴矢量库 2、将下载的压缩文件解压,cmd打开控制台 3、安装npm install -g iconfont-tools(首次使用安装) 4、输入iconfont-tools会生成一个文件夹 5、打开这个文件夹,用里面的相应的css就行...

02-OpenFeign-微服务接入

1、依赖 由于是spring cloud项目&#xff0c;注意spring-boot、cloud、alibaba的版本兼容性 1.1、父级依赖 <properties><java.version>1.8</java.version><spring-boot.version>2.7.18</spring-boot.version><spring.cloud.version>20…...

【前端工程化】环境搭建 nodejs npm

文章目录 前端工程化是什么&#xff1f;前端工程化实现技术栈前端工程化环境搭建 &#xff1a;什么是Nodejs如何安装nodejsnpm 配置和使用npm 介绍npm 安装和配置npm 常用命令 总结 前端工程化是什么&#xff1f; 前端工程化是使用软件工程的方法来单独解决前端的开发流程中模块…...

在VM虚拟机搭建NFS服务器

NFS共享要求如下&#xff1a; &#xff08;1&#xff09;共享“/mnt/自已姓名的完整汉语拼音”目录&#xff0c;允许XXX网段的计算机访问该共享目录&#xff0c;可进行读写操作。&#xff08;说明&#xff1a;XXX网段&#xff0c;请根据你的规划&#xff0c;再具体指定&#xf…...

springboot并mybatis入门启动

pom.xml,需要留意jdk的版本&#xff08;11&#xff09;和springboot版本要匹配&#xff08;2.7.4&#xff09;&#xff0c;然后还要注意mybatis启动l类的版本&#xff08;2.2.2&#xff09; <?xml version"1.0" encoding"UTF-8"?> <project xm…...

什么是单例模式与饿汉式单例模式的区别是什么?

什么是单例模式与饿汉式单例模式的区别是什么&#xff1f; 单例模式和饿汉式单例模式都是软件设计模式&#xff0c;它们的区别在于实例的创建时间和线程安全性。 单例模式是一种设计模式&#xff0c;确保一个类只有一个实例&#xff0c;并提供一个全局访问点。单例模式可以保…...

【数据结构】认识数据结构 (通俗解释)

目录 1.认识数据结构 1.1 什么是数据结构 1.1.1 什么是数据&#xff1f; 1.1.2 什么是结构&#xff1f; 1.1.3 通俗比喻&#xff1a; 1.1.4 标准概念概念定义&#xff1a; 1.2为什么需要数据结构&#xff1f; 1.认识数据结构 1.1 什么是数据结构 数据结构是由"数…...

C语言——深入理解指针(1)

目录 1.内存和地址 a 内存的理解 b 如何理解编址 2.指针变量和地址 a 取地址操作符 b 指针变量 c 解引用操作符 d 指针变量的大小 1.内存和地址 a 内存的理解 假想这样一个场景&#xff0c;你的朋友找你玩&#xff0c;到了你家小区&#xff0c;如何让她迅速的找到…...

MySQL原理(五)事务

一、介绍&#xff1a; 1、介绍&#xff1a; 在计算机术语中&#xff0c;事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务是恢复和并发控制的基本单位。 2、事务的4大特性 原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性…...

算法学习——华为机考题库4(HJ26 - HJ30)

算法学习——华为机考题库4&#xff08;HJ26 - HJ30&#xff09; HJ26 字符串排序 描述 编写一个程序&#xff0c;将输入字符串中的字符按如下规则排序。 规则 1 &#xff1a;英文字母从 A 到 Z 排列&#xff0c;不区分大小写。 如&#xff0c;输入&#xff1a; Type 输出…...

STM32学习笔记(三) —— GPIO点亮LED

1.GPIO简介 GPIO&#xff0c;全称是General-purpose input/output&#xff08;通用输入输出&#xff09;。在单片机中是表示能被控制的引脚&#xff0c;能检测输入信号的高低电平&#xff0c;也能输出高低电平控制外部设备。STM32F103RCT6一共有64个引脚&#xff0c;其中有51个…...

gRPC使用详解

起源特点主要优缺点应用场景组成部分使用方法SpringBoot集成gRPCVert.x集成gRPCNacos集成gRPC监控gRPC调用过程Java使用示例 起源 gRPC的起源可以追溯到2015年&#xff0c;当时谷歌发布了一款开源RPC框架&#xff0c;名为gRPC。gRPC的设计初衷是为了提供一种标准化、可通用和跨…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...