利用大容量可編程網盤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環境,選擇寶塔這樣的會比較省事,上傳https://github.com/qkqpttgf/OneManager-php代碼,創好網站。添加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)。

不管了,反正都有免費額度,就使用單獨雲函數版吧。注意:免費的azure add額度由於頻繁調用API也有次數和額度限制,僅建議用於個人網盤性質用途不建議用於像對象存儲之類的做站圖床場景。


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM