天天看點

如何實作論壇中的遠端附件功能

<b>背景</b><b></b>

網站遠端附件功能是指将使用者上傳的附件直接存儲到遠端的存儲伺服器,一般是通過ftp的方式存儲到遠端的ftp伺服器。目前discuz論壇、phpwind論壇、wordpress個人網站等都支援遠端附件功能。

将附件遠端存儲到oss後,使用者通路附件時将直接從oss下載下傳,一方面可以減少網站的流量,同時附件本身的可用性也将提高。

<b>一、</b><b>下載下傳并運作oss ftp</b><b></b>

oss ftp工具是一個特殊ftp server, 它接收普通ftp請求後,将對檔案、檔案夾的操作映射為對oss的操作,進而使得您可以基于ftp協定來管理存儲在oss上的檔案。

<b>下載下傳oss ftp</b><b></b>

注意,由于windows不會預設安裝python2.7, 是以安裝包中包含了python2.7, 免去您python安裝配置的麻煩,解壓即可使用。

由于linux/mac系統預設會安裝python2.7或python2.6,是以安裝包中不再包含可執行的python, 隻包含了相關依賴庫。

<b>運作oss ftp</b><b></b>

首先解壓之前下載下傳的檔案,然後根據環境情況選擇不同的運作方式

 windows: 輕按兩下運作start.vbs即可

 linux: 打開終端,運作 bash $ bash start.sh

 mac: 輕按兩下start.command,或者在終端運作 bash $ bash start.command

上述步驟會啟動一個ftp server, 預設監聽在127.0.0.1的2048端口。

同時,為了友善您對ftp server的狀态進行管控,還會啟動一個web伺服器,監聽在127.0.0.1的8192端口。

<b>二、網站遠端附件設定</b><b></b>

下面以wordpress為例,介紹如何将附件通過oss ftp工具遠端存到oss。

<b>準備工作</b><b></b>

申請oss賬号,并且建立一個 public-read 的bucket。這裡需要權限為public-read是因為後面需要匿名通路。

<b>詳細步驟</b><b></b>

wordpress本身是不支援遠端附件功能的,但是可以通過第三方的插件來做遠端附件。作者所用wordpress版本為 4.3.1 , 所用插件為 hacklog remote attachment ,以下為具體設定步驟:

 登入wordpress站點,選擇安裝插件,搜關鍵詞ftp,選擇 hacklog remote attachment 安裝

 設定

ftp伺服器位址, 即運作ossftp工具的位址,一般填 127.0.0.1 即可;

ftp服務的端口号,預設為 2048 ;

ftp登入使用者名,格式為“ accesskeyid/bukcetname ”,注意這裡的' / '不是' 或 '的意思;

ftp的登入密碼,為 aceesskeysecrete ,關于accesskeyid和aceesskeysecrete的擷取,可以登入阿裡雲控制台的access key管理進行檢視;

ftp逾時時間, 預設設定為30秒即可;

ftp遠端路徑, 填wp表示所有附件都會存儲在bucket的wp目錄下,注意6和7要對應起來;

http遠端路徑, 填.即可。 

具體資訊見下圖的配置

如何實作論壇中的遠端附件功能

<b>驗證</b>

設定好之後,點選儲存的同時,會做測試,測試結果會在頁面上方顯示,如下圖所示表示測試成功。

如何實作論壇中的遠端附件功能

<b>釋出新文章, 并插入圖檔</b>

現在開始寫一篇新文章,并測試遠端附件。建立好文章後,點選添加媒體來上傳附件。

如何實作論壇中的遠端附件功能

上傳附件如下圖所示:

如何實作論壇中的遠端附件功能

上傳完附件,點選釋出,即可看到文章了。

如何實作論壇中的遠端附件功能

右鍵點選圖檔,通過建立連結來打開圖檔即可看到圖檔的url如下圖所示:

如何實作論壇中的遠端附件功能

通過圖檔的url,我們可以判定圖檔已經成功上傳到了oss。

繼續閱讀