天天看點

利用大容量網盤onedrive配合公有雲做你的nas及做站

本文關鍵字:onedrive打造你的網站圖床大檔案外鍊床,sync as network,網盤附件床,onemanager http解發

在《免租用雲主機将mineportal2做成nas,是個人件也可服務于網站系統》中我們提到将nas和個人網站合一的思路,,在《mineportal – 一個開箱即用的wordpress+owncloud作為存儲後端》我們提到用網盤做網站圖床甚至all webapp backend storage的思路,在《統一的分布式資料庫和檔案系統mongodb,及其用于解決aliyun上做站的存儲成本方案》我們講到過在阿裡雲上省事做站的成本考慮。

畢竟,我們應用軟體的方式就是在一台機器上裝個app,這種思路已經深入人心了,是以我們希望做站也一樣(像安裝應用一樣簡單)。碰巧網站應用的附件床是必不可少的,一個使用者體驗好的網站需要大流量和高速度,甚至大存儲。這跟nas處理存儲的方式和環境要求很相似(現在網盤能達到百M區域網路速能代替nas),是以我們希望它與nas和同步管理連接配接起來。(群晖有一個wordpress plugin)。這樣服務端的網站資料也像手機端的照片,PC端的物料檔案一樣,參與到nas中心檔案庫的備份與維護工作中去。這樣就大為省事省心了。

PS:我們知道,以ecs為基礎的建站成本很高。需要強大的帶寬,這是個人承擔不了的。于是營運商們提出了無伺服器建站serveless,,這基本就是以前的彈性擴充,專門化的“網站雲,雲網站”。即利用oss做靜态資源存儲和展示,甚至包括cms中的前端靜态網站資源,再利用雲函數做應用托管,來彌補靜态網站動态性不夠的問題,所謂函數,也就是相當于一般網站/移動應用的plugin(這些相當wordpress plugin,,etc,,是函數集),它們幫你裝好了各種語言backend,也提供了一個類似容器的主機環境,你免去了搭建伺服器的工作,這應該也是我storage backend webapp的一種實作,最後利用cdn做分發流量租賃。你租用它們的oss(專門做站的網盤還有小鳥雲這些??沒用過),cdn,和函數托管能力,(業務邏輯)由你提供,當然你也可以安裝他們提供的函數子產品。,

但即使這樣,其實綜合成本上,一套下來也不會低。隻是稍為省事。但是如果有了一個函數容器或ecs托管環境再搭配大容量網盤,情況或許就不一樣了,網盤的線路是第三方的。不走伺服器流量,網盤一般都是cdn加速的且網盤一切都是買斷的。相當于為網站伺服器準備了一個超大圖床,甚至附件線路,sync as network線路,這實際上就是上面提到的更強大的oss替代。網盤如果能作為附件床再好不過,甚至可以當成個人nas用。

我們在前面提到在雲上裝黑果。本來我們的設想是利用雲上osx能利用上icloud的能力,自建icloud且提供一個能運作icloud的托管服務的環境。Icloud是一個非常好的檔案異備服務(多端同步防沖突算法非常魯棒),icloud是被設計供icloud産品系内部使用的,直接在icloudrive和國内環境下使用icloud速度很快托管在雲貴,是一個非常好的小型nas(除了它不支援線上視訊等一些局限)。但卻不是一個好的附件床。它的外鍊分享(自2019起支援)是打開一張網頁,點其中的按鈕下載下傳。目前還沒有像oneindex一樣的方案将它轉成直鍊(能wget url大檔案這種,能通過api展示markdown托管靜态資源。)。況且受國内政策影響的,在中國,域名綁定一個國内空間就要備案。免備案的都是走國外路線的。

,分享作為外鍊全部導到香港,速度大打折扣。況且即使能用,icloud的空間也有限,也沒有強大的api支援。不支援其它os開發。我甚至用過用icloud pages+外鍊分享來做站可是不夠省事。

Onedrive是另外一個選項,Windows這二年跟雲和linux靠得越來越近了。這一切源于在微軟工作的印度小哥的決策,onedrive在同步算法和client app支援方面跟icloud沒法比,除了價格,(買斷制不帶onedrive的單office系列要便宜點,隻有訂閱制的帶onedrive 1t/6t的office365系列618,1111,1212,1231去淘寶買或買可以差不多半價200左右得到,它也有國内網絡互聯營運版的onedrive。也有官方版走國際線路,國内速度肯定好點。價格也便宜點,但國内和官方版接下來提到的api支援可能不一樣,購買時看産品描述問清楚)。,另外它還有對webapp和各種語言的api,這樣并不局限于是什麼托管環境(vps,虛拟主機,騰訊雲函數,herku),借此你可以得到存儲在它當中的檔案直接外鍊,配合雲主機/虛拟機/雲函數環境可以将它做成個人nas和網站圖床(不知道免費版5g有沒有api可用),這樣的程式主要是一些php的,有oneindex,olaindex(這個程式是php cli指令行版,還提供基于aria2 cmd實作的雲下載下傳功能),等等。前者可做成web界面的網盤。後者可以做成指令版。其它還有onemanager,onelist,pyone,cuteone,sharelist,fodi,cuteonep。

其中onemanger(

https://github.com/qkqpttgf/OneManager-php

)也是一個php網站程式,較oneindex,olaindex更強大,它也支援互聯版。甚至支援安裝在雲主機和騰訊scf上。下面通過它來講解試驗。

使用雲主機:

建好lamp環境,選擇寶塔這樣的會比較省事,上傳

代碼,創好網站。添加onedrive盤,我們選擇國際版,自己申請id和機密,會把你轉向到這個連結:

https://apps.dev.microsoft.com/#/quickstart/graphIO?publicClientSupport=false&appName=OneManager&redirectUrl=https:%2F%2Fscfonedrive.github.io&allowImplicitFlow=false&ru=https:%2F%2Fdeveloper.microsoft.com%2Fzh-cn%2Fgraph%2Fquick-start%3FappID%3D_appId_%26appName%3D_appName_%26redirectUrl%3Dhttps:%2F%2Fscfonedrive.github.io%26platform%3Doption-php           

程式提供的轉向url中有OneManager&redirectUrl=

https://scfonedrive.github.io&platform=option-php

這樣的一部分參數,可以快速建立,否則需要去

https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade

手動建立,儲存你的應用機密,網頁轉向,選擇php(官方提供一個帶php composer的足夠環境來支援你的函數),把注冊成功處的應用id也儲存下來。以後也可在

https://account.live.com/consent/Manage

管理你的所有應用。

将客戶應用id和機密填入到onemanager處,應用跳轉,蹦出一個錯,不管,直接進入onemanager url,成功,可以看到用你的域名加檔案夾加檔案名就可以形成對應檔案的直接外鍊。而你也有一個小nas網盤了(可以上傳,也可以下載下傳,可以線上播放,但速度感人,最好是大量小檔案,大檔案分享擷取有些吃力。不過像moeclub用于存鏡像,然後港區ecs通過installnet裝機不錯)。至于如何加密,如何連接配接多個帳号用完6T(可以把這麼多使用者想象成oss的buket)。自行研究。

使用騰訊雲函數機:

騰訊雲函數有一個免費額度的cloudbase套(包月免費自動續費),包括靜态網站托管(如果要使用這個,cloudbase應用環境要轉成按量,不過也照樣享有一定免費額度)和scf,這就是我們上面的雲網站,阿裡雲的彈性擴充一類的東西。

我們使用的是單獨作為一個産品的雲函數去安裝。它會出現在cloudbase免費雲函數清單中。去cloudbase中去創一個helloworld雲函數擴充,進入

https://console.cloud.tencent.com/scf/index

會看到被配置設定到了上海區,下面就在這裡安裝onemanager。

跟安裝在雲主機上相比,除了不需要安裝環境(雲函數受自帶language runtime backended),這裡的差別,從下面步驟可以看出:

直接選擇雲函數服務區上海建立,命名空間default,另外一個是你的那個cloudbase雲函空間,。我們看到php7.2函數模闆裡面就有onemanager。嘗試選擇它直接下一步部署,不進行任何設定直接點完成。 函數管理,解發管理,添加觸發方式,選擇API網關,勾選內建響應。通路API網關,其它就跟上面一樣了。

現在嘗試将其複制到cloudbase命名空間,在雲函數在函數名清單中看到有個複制,但是無法複制到cloudbase雲函空間,提示無法完成。隻能在函數代碼處先下載下傳為zip包,在cloudbase新命名空間建立php7.2空白函數的函數代碼處,删掉預設index.php上傳zip包,(直接上傳onemanager.git源碼zip提示函數不正常,需要修正onemanager.git源碼為tcf适用版本為

https://github.com/tencentyun/scf-demo-repo/tree/master/Php7.2-SCFonedrive

使用再cloudbase指令行上傳)。代碼中config.json中"memorySize": 改為256,選擇http觸發,觸發路徑/onemanager,但是執行失敗,看函數日志,Object of class stdClass could not be converted to string in /var/user/function/common.php on line 90,原因不明,看源碼像是路徑處理錯誤。還可能是因為cloudbase的雲函數隻支援http而非上面api網關方式模拟http觸發導緻(而獨立騰訊雲函數産品 2019年12月起隻支援api模拟http)。

不管了,反正都有免費額度,就使用單獨雲函數版吧。

(此處不設回複,掃碼到微信參與留言,或直接點選到原文)

利用大容量網盤onedrive配合公有雲做你的nas及做站