OneManager是什么
這是一個利用微軟onedrive api將onedrive目錄映射成一個雲盤的程序,類似的程序有很多,比如OneIndex、Pyone、OnePoint等等。這個程序的特點是支持多種onedrive類型,可以部署在vps,heroku,以及騰訊雲scf上。
部署教程
參考項目readme說明,網上也有不少教程,這不是本文的重點。
后台設置
登錄后,在管理
>設置
里有一些自定義設置,有些人不清楚這些設置是干嘛的,這可以理解,畢竟項目的說明寫的太簡單了。
adminloginpage
自定義登錄地址,設置后就會隱藏登錄按鈕(有些主題本來就沒有登錄按鈕),登錄時需要手動在網盤地址后加上?你設置的值
進行登錄。
比如設置為abc
,那么你只能通過http://xxx.com/xxx?abc
地址來登錄 。所以一旦設置就要記住你設置的值,不然連你自己也沒法知道登錄地址那就麻煩了。
這個設置是為了防止別人通過默認的登錄界面嘗試登錄你的網盤,設置本項后只要猜不到登錄界面,即使別人知道登錄密碼也沒用,多一道防護牆,讓網盤更安全。
background
自定義背景圖片,填入一個圖片的url地址,因為圖片加載通常需要更多時間,為了速度考慮不建議放入大體積圖片。
customCss
設置自定義css的地方,這里設置的css會作用於網盤所有頁面。
比如我想隱藏語言選項框:
<style>.changelanguage{display:none}</style>
customScript
設置自定義js,會作用於所有頁面。
比如設置http重定向到https:
<script type="text/javascript">
var targetProtocol = "https:";
if (window.location.protocol != targetProtocol)
window.location.href = targetProtocol + window.location.href.substring(window.location.protocol.length);
</script>
customTheme
通過url的方式引用html主題,比如你可以通過設置下面的地址來使用我的主題。
https://cdn.jsdelivr.net/gh/kizx/onemoe-theme/onemoe.html
disableChangeTheme
設置為1
后游客將不顯示右下角的主題切換功能。
disableShowThumb
設置為1
后將不顯示縮略圖的按鈕和功能,對於雲函數用戶來說,建議設為1
來關閉該功能,因為該功能可能點一下就是一分錢。
hideFunctionalityFile
設置為1
后,游客瀏覽網盤時就會看不到read.md,head.md,head.ofm,foo.omf這些文件,這些文件是干嘛的后面會說。
passfile
設置密碼文件名,比如這里設置為password.txt,那么在某一個目錄下新建一個password.txt文件,其中寫入密碼,這樣任何人在瀏覽這個網盤目錄時都需要輸入相應密碼后才能訪問。
sitename
設置網站名稱。
theme
切換主題。
timezone
設置時區,國內可設置為8。
diskname
多盤在網盤界面顯示的名稱。
domain_path
當綁定多個域名時,可以使不同域名打開時訪問不同目錄。當然如果你只有一個域名也可以用,通過這種方式可以使當前域名訪問一個指定子目錄,和后面的public_path起到一樣的作用。
下面是兩個域名的設置方法,中間用|
隔開,如果有多個域名只設置一個域名時,未設置的域名好像也會只訪問該目錄,要訪問根目錄dirname設置為/
。
domain1.com:/dir1name|domain2.com:/dir2name
downloadencrypt
設置為1
時啟用該功能,這樣在設置了密碼的目錄下的文件雖然無法在網頁端瀏覽,但可以通過具體的文件鏈接進行下載。
guestup_path
設置圖床路徑或者叫游客上傳路徑,設置后游客只能看到上傳按鈕看不到目錄下的文件。
public_path
設置該盤的顯示的根目錄,默認為/
,換個說法就是可以顯示指定的文件夾,默認顯示全部。
比如我們只想將網盤下的public文件夾內容作為網盤,可以設置為/public/
。
有了這個功能,即使只有一個onedrive賬號,我們也可以通過重復綁定同一個賬號來生成多盤,然后每個盤的public_path設置為不同的路徑,這樣可以將一個盤的功能分開。
還有一種特殊情況是我既想讓游客上傳文件,又想讓游客看見上傳后的文件目錄,目前就只能通過這種方法將該目錄設置到兩個盤,一個盤作上傳,一個盤作目錄展示。
進階設置
設置網站ico圖標
將favicon.ico圖片放在網盤根目錄下,如果你設置了多盤的的話,則需要在每個盤的根目錄下都放置一個favicon.ico文件,新版的html主題只需要在綁定的第一個盤下面設置就行了。
當然你也可以在customCss或customScript中進行全局設置:
<link rel="icon" href="https://cloud.tencent.com/favicon.ico" type="image/x-icon">
這里我使用了騰訊雲的網站圖標,你應該改為自己的favicon.ico圖片地址。
刷新自動切換背景圖片
這個是通過設置特殊的圖片api來實現的,這些api每次刷新都會返回一張不同的圖片,將后台background設置為這些api的url即可。
網上類似的api有很多,以下是群友收集的免費圖片api:
https://api.ixiaowai.cn/api/api.php (二次元動漫)
http://www.dmoe.cc/random.php(二次元隨機圖)
https://api.ixiaowai.cn/mcapi/mcapi.php (menhera醬)
https://api.ixiaowai.cn/gqapi/gqapi.php (風景)
https://acg.yanwz.cn/wallpaper/api.php(二次元隨機圖)
利用index.html設置自定義頁面
如果一個目錄下有名為index.html的文件,則直接顯示該文件,可以利用這個功能設置一個自定義頁面或者用於隱藏一個特定頁面,相當於部署了一個靜態頁面。
設置頂部和底部說明文字
在需要展示頂部說明的目錄下新建一個head.md
文件,在文件里寫入說明內容即可,這是一個markdown文件,可以使用markdown語言進行書寫。
底部說明說明文字對應的是readme.md
文件,規則與頂部文字一樣。
利用head.omf設置一言
head.omf作用和head.md一樣,區別是他不支持markdonw語言,但是支持html語言,可以寫入html、css、js內容。
在想展示一言的目錄新建head.omf
文件,然后寫入以下內容:
<p id="hitokoto">:D 獲取中...</p> <script> fetch('https://v1.hitokoto.cn') .then(response => response.json()) .then(data => { const hitokoto = document.getElementById('hitokoto') hitokoto.innerText = data.hitokoto }) .catch(console.error) </script>
下面是接口展示,刷新看看!
以有涯隨無涯,殆已!已而為知者,殆而已矣!
以上是使用了https://developer.hitokoto.cn/ 的一言接口,你也可以嘗試更換其他接口或者自建接口。
利用foot.omf設置Valine評論
使用Valine需要先注冊LeanCloud並實名認證,然后新建應用獲取AppID和AppKey。
具體過程參考:https://valine.js.org/quickstart.html
然后新建foot.omf
,寫入以下內容(注意填入替換自己的AppID和AppKey):
<script src='//unpkg.com/valine/dist/Valine.min.js'></script> <div id="vcomments"></div> <script> new Valine({ el: '#vcomments', appId: '你獲取的AppID', appKey: '你獲取的AppKey' }) </script>
ps: 上面的js用的是unpkg的cdn,國內速度完全不行,建議改用jsdelivr的cdn
<script src='//cdn.jsdelivr.net/npm/valine/dist/Valine.min.js'></script>
展示Demo見:https://pan.2bboy.com/ppx/
- 如果對樣式不滿意,建議直接在omf文件寫css美化。
設置動態背景
這里的動態背景指我們經常在一些網頁見到的那種下雪、粒子線條、彩條等動態背景,一般是通過js實現的,可以自己在網上找找現成的教程,js我不會,這里只展示一種我找到的動態彩條背景。
我將下面的代碼寫在了foot.omf中,可以訪問https://pan.2bboy.com/home/test/ 查看其效果。
<script size="90" alpha="0.5" zIndex="0" src="https://pan.2bboy.com/ppx/test/ribbon.js" type="text/javascript" charset="utf-8"></script>
其中最重要的是 https://pan.2bboy.com/ppx/test/ribbon.js 這個js文件,我將他放在網盤目錄下,你應該下載該文件放在自己的雲空間里,然后替換引用的地址。
如果將代碼放在omf文件里則只能在當前目錄有效果,設置在后台的customScript中就可以全局生效了。
美化自定義登錄頁面
修改common.php相應地方,添加style和br
$html .= ' <style>body{background-image:linear-gradient(60deg,#343b44 0%,#485563 100%);background-attachment:fixed;color:#343b44}body>div{position:absolute;text-align:center;background-color:rgba(221,221,221,.5);border-radius:20px;width:75vw;max-width:500px;height:350px;margin:auto;top:25%;bottom:50%;left:0;right:0}body>div:hover{box-shadow:3px 3px 6px 3px rgba(0,0,0,.3)}h4{font-size:40px}input{font-size:20px;margin:2%auto;border:#343b44 2px solid;border-radius:10px;padding:10px;height:50px;text-align:center}input:last-of-type{color:#343b44;height:50px;width:80px;font-weight:800}input:hover:last-of-type{cursor:pointer;color:#ddd;background-color:#485563}</style> <body> <div> <center><h4>'.getconstStr('InputPassword').'</h4> <form action="" method="post"> <div> <input name="password1" type="password"/> </br> <input type="submit" value="'.getconstStr('Login').'"> </div> </form> </center> </div> ';
小知識
部署到scf上沒有顯示縮略圖的功能,這是因為該功能過於消耗流量,點一次一分錢就沒有了,為了錢包考慮作者把scf上的這個功能閹割了
新版的主題可以在后台自定義開啟或關閉該功能,建議關閉。- 游客上傳文件只能單個上傳,不能批量上傳。
- 由於scf的緩存系統,在scf上進行某項改動后有時候不會立馬生效,或者刷新時而生效時而不生效,只要多等一會兒,等舊緩存自己失效就好了。
- php格式的主題為舊版主題,html格式的主題為新版主題,不同主題的作者更新頻率和支持功能都可能不同,功能測試請以最新版本的默認主題為准。
- 文章來自https://www.2bboy.com/archives/176.html