文章目录
现在我们身边的只能设备越来越多,各种智能手机、平板、智能手表和数码相机充斥身边,需要存储的数据也越来越大,一张手机拍摄的照片都可能有十多M,电影和视频更是按G计算。而智能设备的存储空间也用的捉襟见肘。能存储大量文件的,最合适的也就是家用电脑了。但家用电脑又存在无法随时随地调阅文件资料的问题。但只要经过简单几步,就能让家里的电脑秒变随时随地调阅存取文件的私有云盘。今天,笔者就为大家介绍,如何使用两个简单软件,让家里的电脑变身安全高效的私有云盘。
SeaFile是一个自行托管的开源文件同步共享服务器,简单说就是一个个人云盘服务器,我们可以在家用电脑上安装SeaFile软件,将家用电脑变为数据存储服务器,再通过Cpolar的内网穿透功能,将这个数据存储服务器发布到公共互联网上,以此达到我们将家用电脑设置为私有云盘的目的。
要在家用电脑最常见的Windows系统上安装SeaFile软件,我们需要注意两个要点,第一是SeaFile需要构建一个必要的运行环境,即需要安装一个Python;第二是Python要选择2.7版本,并在安装时勾选Path选项。
Python算是比较知名的软件了,可以在其官网下载(https://www.python.org),也可以在搜索引擎中搜索软件名下载。


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



Python安装完成后,就可以继续进行SeaFile的安装。
接下来,我们就可以安装seafile服务器端(这里需要特别注意,要下载的是seafile服务器端,不是seafile客户端)。由于笔者没有在seafile官网上找到windows版本的seafile server下载,因此在搜索引擎里找了一个(https://www.jb51.net/softs/413008.html)
对应版本的SeaFile server下载完成后,需要解压到某个磁盘的文件夹下,这里笔者将文件解压到D盘的SeafileProgram文件夹下(需要注意的是,解压文件的路径不要过长)。

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

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

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

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

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


此时,我们就在本地电脑上搭建起能够提供局域网内设备共享文件资料的服务器,访客可以通过各自的用户名和密码查阅共享的文件资料。接下来,我们要做的就是使用cpolar内网穿透,为本地的seafile server创建一个公共互联网地址,让我们能随时随地的访问到局域网内的seafile服务器,让seafile真正成为私有云盘。
首先,我们需要在安装了seafile server的电脑上安装cpolar内网穿透软件。我们可以在cpolar的官网(https://www.cpolar.com/)上找到对应操作系统版本的cpolar软件。

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

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


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


在填入所需信息后,即可点击创建账号完成新用户注册。
完成了seafile设置,安装并注册好cpolar,剩下的工作就很简单,只要使用cpolar内网穿透建立一条数据隧道,将cpolar生成的数据隧道的入口与本地电脑的seafile server端口连接起来,就能构成一条专属于与seafile的内网穿透数据隧道,让我们能随时随地访问到本地seafile server。
由于私有云盘调取文件的需求随时可能发生,而笔者又懒得每天设置一次数据隧道(免费版cpolar创建的数据隧道每24小时会重置一次),所以笔者将cpolar升级至vip版,以便能保留能长期稳定存在的数据隧道。
升级cpolar至vip后,我们首先登录cpolar云端,在客户主界面左侧找到预留按钮,点击进入预留页面,找到保留


在保留二级子域名栏位,需要进行几项信息的简单设置
地区:服务器所在区域,就近选择即可二级域名:会最终出现在生成的公共互联网地址中,作为网络地址的标识之一描述:可以看做这条数据隧道的描述,能够与其他隧道区分开即可)完成这几项设置后,就可以点击右侧的保留按钮,将这条数据隧道保留下来。

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

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

登录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云端时的设置一样,都是对服务器地区的选择,我们依照实际使用地填写即可;

完成cpolar客户端创建隧道所需信息的填写后,就可以点击页面下方的创建按钮,完成穿透本地局域网的数据隧道,让我们能在公共互联网上访问到本地seafile server。
隧道创建完成后,cpolar会自动转入隧道管理——隧道列表页面,在这个页面我们能对已经创建的隧道进行管理,如启动、暂停、删除;如果需要对这条数据隧道的信息进行修改,也可以在这里点击编辑按钮,进入数据隧道信息修改页面。

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

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

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


到这里,我们就完成了将本地seafile打造成为私有云盘的全部操作,我们可以自由的通过cpolar创建的内网穿透数据隧道,轻松访问到局域网内的seafile服务器,并从中调取所需的资料和文件。
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看rubyzip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于
我正在尝试使用ruby和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h