[心得] Synology NAS的创意应用 – Downl

2020-05-26 作者: 围观:863 49 评论

各位朋友大家好,我是scku,,可以叫我深红,是一个普通宅宅。在文章的一开始就必须先说很抱歉,虽然这标题我想了很久,写得很笼统,但…总还是怪怪的。想必很多人现在一定黑人问号中,什幺是Python?又到底什幺是「想做又不想做的事」?先卖个关子,且听我娓娓道来吧。
啊,对了,我又得先说,这篇文章的应用实例比较倾向于已成年的男性。不过,不属于这类的人,也不用急着上一页离开,不妨直接跳到「解决方案」章节,仍有不错且正常(?)的Synology NAS创意应用说明哦,可以激发你对NAS应用更深一层地想像。


====以下开始切入主题====


不知道大家是不是也跟我一样,购入NAS的主要原因是保护自己重要的资料呢?我想,最大宗的应该就是照片了吧(你说不是?!)?那可是不见了就很难很难再找回的珍贵回忆呢!虽然Google也对照片提供其它免费的决解方案。但就我个人的了解,仍有不少人希望能够自己管理重要的照片与资料,以保有绝对的隐私。


[心得] Synology NAS的创意应用 – Downl
这是我近年来购入的(二手)DS1515+,座落在房间的一个小角落,不眠不休的执行我日常的档案备份任务


抱歉,离题了。不过,把NAS当成纯资料备份的机械之后,使用的日子一久,当备份资料变成了例行公事,就会开始想着,「NAS还可以为我做些什幺事」?接着,就会看看Synology官网或google,找寻NAS其它好用的功能,发挥它最大的效益。深红在这里建议大家,直接参考Synology的套件中心或google搜寻「synology nas 用途」等类似关键字,一大堆的好文章即可让你对NAS的其它功能有更深一层认识,在此就不再赘述啦~


[心得] Synology NAS的创意应用 – Downl
Synology官网中提供了许多套件的介绍,套件提供了多元的加值服务。其中位于中间的「Download Station」套件,就是这次要介绍的主角之一。


那,你心中是否浮现一个疑问就是:「这篇文章到底想干嘛?想分享啥?」。呃…我想,科技始终来自于人性。是的,来自于「人」(的惰)「性」。所以我想在这里跟读者们分享,我到底懒到什幺程度,以致于在如此方便的Download Station下,又发展出了什幺样的「科技」,什幺样的「创意应用」,更如何让Download Station与Python做你「想做又不想做的事」。


[心得] Synology NAS的创意应用 – Downl
Download Station – Synology开发的下载服务器;Python - 一种程式语言,解决日常生活中重複性的简单工作


相信讲到这里,大家应该心里都有个底了。如果,你还没有任何想法,一方面先恭喜你(?),另一方面…不妨就继续看下去吧!
请容我在此先说明一下,Synology的Download Station,顾名思义,是个下载的好用工具,在几乎所有的Synology NAS中都能下载使用,算是非常老牌的套件了。它提供我们很大的下载便利与调整性,可以让我们使用一些常见的下载服务如BT、HTTP、免空等。并以简易的操作方式提供搜寻、批次下载、排程与设定等等的下载规划。在google的搜寻结果下也能找到相当多的资源与教学。


[心得] Synology NAS的创意应用 – Downl
在Google搜寻中下「synology download station」等字眼,满满的套件介绍与教学文章,网路资源算是相当丰富,不怕找不到


Python是一个强大的直译式程式语言,许多大公司都在使用它(Google, Facebook, Dropbox, Netflix等等),它免费且开源、平易近人、易读易整合,算是相当亲切的程式语言,也是此篇文章中的强力配角。
的确,好一阵子,Download Station所提供的这些功能确确实实地满足了我下载档案的需求,惠我良多。不过,如我前面所提,日子久了之后,就发生了以下的情境,这也逼着懒惰的我开始寻求解决之道 – 使用Python。


使用情境


深红是一个重度的网路资源使用者,每天做着日复一日的辛苦工作…粗略可以分成以下步骤的循环:


1.打开chrome浏览器,打开熟悉的网页,开始寻找适合的BT种子档案。
2.如何知道种子是不是需要的呢,必须浏览该种子的相关介绍,有时候是一些文字说明、一些照片,而这些介绍,往往会需要滑鼠中键的滚来滚去、亦或是弹跳视窗的跳来跳去,最终才能取得介绍以作为判断的依据。
3.决定好需要的种子之后,点选连结把种子下载至电脑(亦或是贴上Download Station中),然后开始下载与漫长的等待。
4.等了几天,终于下载完成。选一个夜深人静时,开开心心地将下载好的档案资料夹拖进常用的播放软体。结果,要跳过一堆介绍影片不说,等正片开始,又发现里面内容与封面不符,一度气到勃...勃然大怒。无奈为时已晚,裤子都脱了,档案是砍还是不砍,不删对不起自己的眼睛,删了又对不起已脱下的裤子这几天一路走来的努力。整体所花上的时间与报酬不成正比,得不偿失。


[心得] Synology NAS的创意应用 – Downl
「悔不当初」之情境说明示意图


以上情境相信是许多已成年的男性可能会碰到的问题。其实,你可以不必那幺辛苦的,你只是还没找到方法罢了。(还是有人为此甘之如饴?)


解决方案


只要使用Synology所提供的Download Station套件,并配合Python程式语言,问题便能迎刃而解,从而得到相对高的投资与报酬,也就是省时、费力,却不费人力。
然而,丑话还是先说在前头,目前的解决方案还是不尽理想的,它无法满足每个人的使用需求,至今也只满足了目前的我,而日子一久呢?还是无法保证。所以,仅供大家参考啰。
在不考虑任何技术面与其它複杂的可能,一言以蔽之的解决方案就是:「我不希望把人工消耗在找寻、判定、下载、上传BT种子之类繁杂的工作」。我希望Synology的Download Station能帮我解决以上的问题,并在最后使用下载的档案时,再以人工来判断档案的去留。
如果以上的任务能够达成,因为没有投入或投入相对较少的时间成本,相对的得失心也不会那幺重,进而坦然看待这一切,因内容物不符的删档动作自然也就没有留下任何遗憾啦。


[心得] Synology NAS的创意应用 – Downl
自动化任务达成时的说明示意图,仅剩下人工判断档案去留的部份


只是,好景不常,使用Download Station提供的基本功能,仅能解决上面所说的一部份,哪一部份?呃…对不起我看错了,没有。对的,没有。因为Download Station提供的基本功能里,真的没有不用人来操作的部份,全部都需依赖使用者进入Download Station的使用者网页介面进行操作。那…我这篇到底跟Download Station有什幺关係…?


[心得] Synology NAS的创意应用 – Downl
Download Station的基础功能需搭配网页介面,以人为操作控制与调整


唔…有的。事实上,Synology为他们开发的套件提供了所谓「进阶」的功能,在Download Station搭配其「进阶」的功能后,是能达成上述的某些需求的,也就是本篇实际想分享的主要用途,至于会选用如此不洁(?!)的使用情境是因为…呃…我就是个宅宅,That’s it。
碍于一些技术面、相关版权与尺度的问题,在此文章中能分享的部份其实并非常有限,这部份还请见谅。不过我想,精髓还是有的。
让我们移动到Synology官网中的「开发者专区」,在「取得开发人员SDK」的分页下,可以看到「Download Station开发指南」,这就是上面所提的Download Station进阶功能,言下之意,此进阶功能可以像yoyodiy大师那样地绕过Download Station使用者介面,透过Web API直接对Download Station下达相关的命令以达到自动化的可能。值得一提,说明网页中的中文页面真是令人感到心慰。


[心得] Synology NAS的创意应用 – Downl
Synology官网的开发者专区 – 友善开发平台、创造无限可能


[心得] Synology NAS的创意应用 – Downl
取得开发人员SDK的分页下,许多的套件开发指南与说明下载


于是,下载「Web API模组」点开一看,呃…我收回我刚刚的感动,还是全英文的pdf啊…而且不多不少的44页内容令人进退两难。不过由于宅宅如我的惰性,比起重複又辛苦的滑鼠中键左键的动作,我还是选择性的将它阅读完,并掌握此解决方案需要的部份。


[心得] Synology NAS的创意应用 – Downl
Download Station的Web API模组说明,满满的44页英文pdf


Web API,简单的说,是一种「透过HTTP协定为基础来进行与服务间沟通的介面」,然后,好,我知道我不能再多说了。翻成白话就是,「我可以不透过Download Station的网页使用介面,对Download Station进行操控」。
套一句在魔物猎人世界台湾冠军ptt心得文中看到的一句名言:「如果我看得比别人更远,那是因为我站在巨人的肩膀上」by 牛顿。虽然我不是巨人,我仍希望大家能站在我已努力过的肩膀上,继续向前。
于是,我选择了Python程式语言来对Download Station的Web API进行整合,让一般使用者更易于去使用这样进阶的功能。你一定会问:「Python是啥?要用还不是要先学会Python」。是的,没错。但是我如果有勇气拿Python去整合,并分享给各位。相信我,我整合开发出来的Python工具,一定比开发人员的Web API文件要更平易近人。夸张地讲,就我的观点,只要有心,就连显示卡中氧化的金手指部份,它,也学得会。(谜:谁啊?)


设置教学


别管显示卡中氧化的金手指部份了,让我们就这样开始吧!首先,跳脱一切世俗的想法,这次,我们要用Python操作DSM (DiskStation Manager,就是点开网页连到的NAS介面)中的相关套件。想法上,我们需要DSM的IP位置、埠号与使用者帐号密码等相关资讯。我们可没辨法真的像yoyodiy大师什幺都绕得过。当然,实作上,我们也需要这次的配角 - Python。


[心得] Synology NAS的创意应用 – Downl
Python官网的下载页面,找到「Downloads」,取得适合自己作业系统的Python版本


首先,我们必须安装Python。该怎幺做呢?进入Python官网,虽然是英文,但是别忘了,我们要时常站在巨人的肩膀上。网路上已有相关的安装教学,在此不再说明(请参考安装Python)
接着,我们必须像NAS一样,安装所需的Python套件模组 – requests。安装方法相当简单,在键盘按住windows键(通常在左下,长得像旗子的),再按下R,会跳出以下视窗,在视窗中输入“cmd”,按下Enter键


[心得] Synology NAS的创意应用 – Downl


便会跳出dos的视窗。


[心得] Synology NAS的创意应用 – Downl


键入“pip install requests”,再按下Enter,即可安装完成(需连上网路)。会出现类似以下的画面


[心得] Synology NAS的创意应用 – Downl


至少最后一行要有的:「Successfully installed requests-2.19.1」
再来,我们必须下载Python与Download Station的整合Python档案,也就是本人的拙作。请下载并放在你能找到的路径底下。
整合档下载网址: 本人的拙作
下载完成后,按下Windows桌面的左下角“搜寻”按钮(或旗子图示也行)并键入“python”等文字,如已顺利安装Python,应该可以找到最佳比对为IDLE Python。


[心得] Synology NAS的创意应用 – Downl


[心得] Synology NAS的创意应用 – Downl


点击开启它,


[心得] Synology NAS的创意应用 – Downl


然后点选「File」->「Open…」后,选择下载的Python整合档并打开


[心得] Synology NAS的创意应用 – Downl


会看到如下画面


[心得] Synology NAS的创意应用 – Downl


看到这是啥东东时,千万别担心,只有前五行是需要调整的部份,其它都是那44页Web API的浓缩精华,可以不用理它。这边会想辨法让你了解这五行在做些什幺,分别为:
IP:
你的Synology NAS位置,区域网路通常是192.168.1.100,外网或是DDNS就是一串网址,如awesome.synology.me或你自己申请的网址(请去掉http(s)://部份),记得文字两边的单引号要留着,那在Python里是指字串(文字)的意思。
PORT:
你的Synology NAS的埠号,通常是5000(http)或5001(https),如果你有自己的设定,请直接修改它,它是一个数字。
SECURE:
是否为加密连线,是的话输入True,不是则为False(注意大小写),预设在区网内,此值为False。若使用DDNS网址等对外网路,强烈建议此值要为True(当然NAS也要打开相对应的加密),否则你的帐密将透过网际网路以明码传送(相当危险)。
USER:
你的Synology登入使用者名称,预设是admin。请更换为你的使用者名称
PASSWORD:
你的Synology登入使用者密码,没有预设。


执行程式的方式在已开启的Python档案下(标题是mysyno.py的那个)按下F5键,程式会问你是否储存,请按下确定储存以执行程式。


[心得] Synology NAS的创意应用 – Downl


如果没有填入登入密码,程式执行时会要求输入(如下图,注意:输入的密码将以明码显示,且需输入两次。包含登入File Station与Download Station套件)。


[心得] Synology NAS的创意应用 – Downl


每次输入完请按下Enter键完成登入。


又如果你在填入密码后才按F5执行,则会看到类似以下画面(如果密码正确的话)


[心得] Synology NAS的创意应用 – Downl
看到此画面,表示套件已登入完成。


That’s it. 你已经成功用Python掌握Synology的套件了,恭喜!
现在我们可以开始使用整合的Python程式了。例如,你可以透过它连上File Station(你已经连上了),在IDLE Python介面(标题有Shell的互动介面)输入以下指令,来帮你的NAS建立一个资料夹:
fs.createFolder('/home/test/a_folder')
这个指令会在使用者的home目录下建立一个test资料夹(如果没有的话),再在其中建立一个a_folder资料夹,酷吧!


[心得] Synology NAS的创意应用 – Downl


然后,你可以用你常用的方式连上NAS(本例是Windows的网路磁碟机连线),去看看资料夹是否已建立。


[心得] Synology NAS的创意应用 – Downl
有,这真是太棒了!


这边也尝试用一点程式基础来乱数产生一些资料夹名称,说明这个过程如果用人工来操作,应当会非常辛苦。


[心得] Synology NAS的创意应用 – Downl
[心得] Synology NAS的创意应用 – Downl
如果需要手动建立资料夹,很多,很辛苦


再来,当你以同样的方式将Python连上Download Station后(你也已经连上了),你可以开始上传你的BT种子档案了,以这个ubuntu的作业系统种子为例。你可以在IDLE Python下输入以下指令:
ds.uploadTorrent('http://releases.ubuntu.com/18.04/ubuntu-18.04.1-desktop-amd64.iso.torrent?_ga=2.50384809.1281756310.1534536911-1914665641.1534536911', '/home/test/a_folder')
就能将此种子上传Download Station并指定下载完成时存放的资料夹哦~这里我们指定下载的资料夹位置为指令中的第二个参数,也就是'/home/test/a_folder',是我们之前用Python结合File Station时所建立的资料夹。


[心得] Synology NAS的创意应用 – Downl


再到Download Station的网页介面看看,种子已经上传上去并开始执行了哦。再次,这真是太棒了!


[心得] Synology NAS的创意应用 – Downl
种子照着我们的预期上传Download Station并开始下载


你当然会说,何不用滑鼠直接把档案圈起来,一次拖拉上Download Station网页不也是一样?Yes, you are right。但,就是这个“but”,对懒到一个不行的我,时间就是金钱,能省则省。懒得拖曳档案,懒得选取目的地资料夹,懒得勾掉显示视窗来选择下载的档案,懒得按下确定。一两个档案是还好,但日积月累,Sorry, I can’t。


总结与讨论


OK,至此,文章已进入尾声,能看到这里的读者们,深红在此由衷感谢。你已经学完了本文能够教你的东西了。回过头来看看,我们能把这些技巧发挥在情境的哪里呢?


第一
当整个Python程式执行时,会自动找出程式执行当下的日期,并在指定的NAS资料夹位置中,建立关于该日期的资料夹(这里运用了Python与File Station的连结 - fs.createFolder)。这方便我们将每次执行的下载任务依日期分别存入,才不会发生「往事又重提」的窘境。
第二
找寻熟悉的网页,不由分说的找寻需要的BT种子。这里没有任何的人为操作。仅是使用Python程式傻傻的找出网页中BT种子的网址,并记录下来。(仅使用Python,并无使用Synology相关套件)。这里其实是相对最费时费力的部份,但除了有公开的限制外,与本次主题相关性也不大,请容我简单带过。
第三
将所记录(或下载)的BT种子,依序上传至Download Station(这里运用了Python与Download Station的连结 – ds.uploadTorrent)。此时还可同时指定下载的资料夹位置,帮助分开由不同日期执行的Python程式所下载的档案。也因为不花任何人力时间成本,程式选择将BT种子内所含的档案都下载。


题外话,如果下载下来的档案,有重複或不需要的档案,可以再由额外的Python程式来判断处理,例如将下载资料夹内的小档案全部移除,以减少在播放软体中额外选取正确档案的时间,不过那又是另一个懒惰的故事了。总之,以Python结合Synology NAS – Download Station,帮我做了「想做又不想做的事」,这真是太好了。


个人用后感


就个人使用此篇提到的Download Station进阶技巧并搭配Python程式语言后的使用感想,我觉得,它真的帮我在日常生活中,减少了很多不必要且无趣的重複性工作。虽然人工过滤档案的时间反而变多了(因为下载的档案也变多了)(笑),在某种程度上也不失为一个「美好的过程」,毕竟每次打开档案都有不一样的体验。
然后,整体所花费的时间一定是变少的。而且,时间都花在(自认)美好的事物上呢。
最后,我想我还是必须强调,如我前面所提,这篇文章完完全全地无法为读者们解决这次的使用情境(碍于一些限制),以解决问题这个目的来说,实属不及格。
在文章评分的要求上,套件的使用者介面截图也不符评分标準(不过我想澄清一下,因为本文的重点就是使用Download Station的进阶功能啊,那是没有使用者介面的…不能怪我QAQ)。
不过,本人仍努力在有限的条件下说明与分享,期望能为读者们提供创意的思维、创新的用法、解决问题的参考!当然,也欢迎大家与我讨论,我会尽可能回答大家的疑惑(如果不适合留言发问,还请寄到我的信箱: scku208@gmail.com)。


以上,本篇文章将陆续发表于以下平台:
-- T17「科技行动派」
-- PTT Storage_Zone& Python版
-- Mobile 01
-- 巴哈姆特
-- XFastest
如果觉得文章还可以,也欢迎将本文转载至以上未提及之其它平台,但希望能够在你原先所看到的平台上,留下转载相关讯息,以方便追蹤,谢谢您的合作。

相关浏览推荐