新聞、媒體等內容性網站,發佈的文字內容比較多,如果直接儲存到資料庫中,資料庫的佔用會非常大,同樣的網站的圖片資源也是非常多的,佔用大量的伺服器空間資源。所以考慮將內容保存到其他地方,將保存的地址保存到資料庫的文章字段中。從而減少對資料庫的佔用,將圖片保存在雲端盤中,從雲端盤中進行引用,從而節省伺服器硬碟空間。
新聞、媒體等內容性網站,發布的文字內容比較多,如果直接儲存到資料庫中,對資料庫的佔用會非常大,同樣的網站的圖片資源也是非常多的,佔用大量的伺服器空間資源。所以考慮將內容保存到其他地方,將保存的地址保存到資料庫的文章字段中。從而減少對資料庫的佔用,將圖片保存在雲端盤中,從雲端盤中進行引用,從而節省伺服器硬碟空間。
本文主要的主要想法就是將佔用伺服器資源的圖片和佔用資料庫資源的文章內容,從伺服器中分離,將其保存到阿里雲OSS中,然後將阿里雲中的保存地址返回,並保存到資料庫中,使用的時候,直接根據阿里雲的路徑將圖片及資料取出。
實現過程如下圖:
實作步驟:
1、取得阿里雲OSS的Access Key ID和Access Key Secret。 (阿里雲OSS 40G雲端盤 一年的價格是9元,性價比還是非常高的)。
登入阿里雲端使用者管理系統:https://ak-console.aliyun.com/#/accesskey,在以下介面取得appkey和appsecret參數。
2、建立bucket,並設定屬性為公共讀寫權限。並取得到該bucket的OSS外網域名,如下圖:
3.下載阿里雲OSS的SDK檔案包,下載位址:www.zixuephp.cn/xxxxxx。將SDK檔案包Alioss資料夾配置到ThinkPHP的/ThinkPHP/Extend/Vendor/資料夾中。
4.將取得到的阿里雲OSS參數Access Key ID和Access Key Secret配置到專案的config.php檔案中。配置的參數如下:
5.在common資料夾下的公用函數檔案common.php中定義阿里雲操作函數:包含實例化oss物件函數、圖片上傳阿里雲函數、刪除阿里雲中物件的函數、取得阿里雲中物件路徑的函數、對像上傳阿里雲函數。如圖為實例化阿里雲OSS方法:
6.從後台新增內容頁面提交資料之後,Action的處理方法及儲存到資料庫如下:
7.在前台頁面中,從資料庫中取出內容的阿里雲保存路徑,解析路徑對應的內容並在前台進行顯示方法如下:
將發布的圖文內容保存到阿里雲的整個步驟就是這些。
文章轉自:自學php部落格http://www.zixuephp.cn
下載本案例原始程式碼位址:http://t.cn/RVxAgUW