網站分享代碼(sabre)

如今網盤已經成為我們日常中很重要的工具瞭,不僅僅可以和別人分享,更重要的是可以在我們不同的設備之間讀取資料.那什麼是WebDav呢?WebDav是一個Http上封裝的一個文件系統,就像ftp,nfs之類的一樣,隻不過他是HTTP協議上的,所以他的能力受制於HTTP,但是優勢也得益於HTTP,這意味著對系統更少的依賴,更容易的底層封裝(比如在WebDav下對接其他存儲系統).今天介紹的sabre/dav是一個非常流行的PHP的WebDav框架,真的隻要十行代碼就能實現一個在線的網盤,也可以在我的電腦中接入.先用十行代碼做起來安裝他非常簡單,隻要使用composer加載即可:composer require sabre/dav創建兩個目錄,data和public,最終我們的目錄如下:-data
-public
-vendor
composer.json
composer.lock
index.php創建index.php寫入下面的代碼:<?php

use
Sabre\DAV;

// 引入自動加載
require 'vendor/autoload.php';

// 設置存儲的目錄
$rootDirectory = new DAV\FS\Directory('public');
$server = new DAV\Server($rootDirectory);

// 設置入口訪問的入口文件
// 可以通過偽靜態隱藏掉
$server->setBaseUri('/index.php/');

// 支持文件鎖
$lockBackend = new DAV\Locks\Backend\File('data/locks');
$lockPlugin = new DAV\Locks\Plugin($lockBackend);
$server->addPlugin($lockPlugin);

// 使用內置的瀏覽器頁面
$server->addPlugin(new DAV\Browser\Plugin());

// 完成運行
$server->exec();訪問內置的瀏覽器的頁面http://hostdomain/index.php/添加到我的電腦中進入我的電腦,右鍵點擊添加網絡位置,具體操作按照引導添加即可:添加成功後,我們就可以像訪問文件夾那樣使用瞭:就是這麼簡單,算上所有代碼真的隻有十行,同時我們也可以將它集成到框架中,比如ThinkPHP,你完全可以自己接管輸入輸出去實現.更多功能sabre/dav內置瞭許多功能和接口,我們既可以直接使用他提供的,也可以自己去封裝實現.ACL(訪問控制列表)認證管理(自定義webdav的賬號密碼)字符編碼支持(自定義和不同系統間的兼容)默認的瀏覽器訪問(上面截圖演示)DavMount標準(盡管這個標準並沒有流行)資源類型(支持文件類型推測,比如圖片/視頻/文本等)文件續傳標準(HTTP PATCH標準)大文件支持(最大15GB卻不會受制於內存限制)第三方審計測評(所有的標準功能都已通過)文件鎖(有的客戶端要求必備,比如蘋果系統中的Finder)支持擴展標準支持WebDav屬性處理和存儲簡單的虛擬節點(就像用戶文件夾裡的那些文件一樣)支持臨時文件的功能虛擬文件系統(你不必須使用服務器的目錄存儲,你可以抽象一層文件操作,接入到其他的系統上,比如通過FTP連接其他服務器,或者更酷,接入第三方OSS)WebDav同步(主要用於日歷和通訊錄的更節約的同步)它實際上還集成瞭其他的功能和插件,比如日歷和通訊錄,你可以根據自己的需要搭建.

本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.175ku.com/41742.html