))
后端密碼學【免費下載鏈接】upspinUpspin: A framework for naming everyones everything.項目地址https://gitcode.com/gh_mirrors/up/upspin點擊查看免費下載導讀本文是 doc/server_setup.mdupspinserver通用部署手冊的配套專題專門講解如何將 Upspin 的 StoreServer 存儲層切換到 Google Drive使用戶數(shù)據(jù)不再保存在服務器本地磁盤而是存放在你的 Google Drive 空間內(nèi)。讀完本文你將掌握構建upspinserver-drive與upspin-setupstorage-drive兩個變體二進制、通過 OAuth2 授權碼將服務器與 Google Drive 賬戶綁定、以及如何銜接upspin setupserver完成整個部署閉環(huán)同時你會從源碼層面理解 Upspin 的存儲后端抽象機制cloud/storage注冊與撥號模型。定位與前置條件這是server_setup主流程的存儲環(huán)節(jié)本指南是 Setting upupspinserver手冊的一部分請先閱讀該文檔。在 Upspin 的部署流程中搭建一個完整安裝需要依次經(jīng)歷五個步驟signup為管理員賬戶注冊公共密鑰configure your domain配置域名并為服務器創(chuàng)建 Upspin 用戶setup storage即本文場景若選擇云存儲則配置云端存儲服務deploy將upspinserver部署到 Linux 服務器configure運行upspin setupserver完成服務器配置。其中除了部署之外每一步都有對應的upspin子命令輔助完成。按 setupstorage.go 中幫助文本的定義整個流程是setupdomain第一步、setupstorage第二步、setupserver最終步——本文要做的正是中間的第二步并且是針對Google Drive這個特定存儲位置的變體。在動手之前你需要備好主文檔 Prerequisites 中要求的三個值一個可添加 DNS 記錄的互聯(lián)網(wǎng)域名下文沿用文檔示例example.com你的 Upspin 用戶名一個郵箱地址例如yougmail.com它將成為安裝的管理員upspinserver將要運行的主機名例如upspin.example.com。此外請注意主文檔中的命令約定local$前綴表示在本地機器執(zhí)行server%前綴表示在服務器上執(zhí)行。構建upspinserver-drive與upspin-setupstorage-driveUpspin 有多種upspinserver變體每種變體對應一種存儲位置服務器本地磁盤或某個云存儲提供商。使用云存儲的二進制都帶有一個標識提供商的后綴例如 GCP 對應upspinserver-gcp這些二進制也存放在各自獨立的倉庫中。Google Drive 對應的就是upspinserver-drive與upspin-setupstorage-drive存放在drive.upspin.io倉庫。要使用 Google Drive 存儲先獲取drive.upspin.io倉庫并安裝兩個變體命令local$ go get drive.upspin.io/cmd/...該命令會同時安裝upspin-setupstorage-drive和upspinserver-drive兩個命令。從倉庫源碼可以理解為什么需要變體通用版 cmd/upspinserver/main.go 只通過空導入_ upspin.io/cloud/storage/disk注冊了本地磁盤后端而upspinserver本身是 DirServer 與 StoreServer 的組合體詳見 serverutil/upspinserver/main.go。drive 變體則在通用實現(xiàn)之上額外注冊 Google Drive 存儲后端從而讓 StoreServer 把數(shù)據(jù)對象寫入你的 Drive 空間而不是$HOME/upspin/storage。倉庫的 serverutil/frontend/frontend.go 中也保留了drive.upspin.io: ...的映射記錄印證該倉庫確實是獨立的 drive 實現(xiàn)。另外按照主文檔 Set up storage 的說明你需要為服務器構建對應操作系統(tǒng)與處理器架構的二進制主文檔假設 64 位 Linux即local$ GOOSlinux GOARCHamd64 go build drive 倉庫中的 upspinserver 入口包對比如果選擇服務器本地磁盤則構建upspin.io/cmd/upspinserver數(shù)據(jù)默認存于$HOME/upspin/storage但本地磁盤方案在磁盤故障時所有 Upspin 數(shù)據(jù)都會丟失。使用 Google Drive 這類云存儲則可以規(guī)避單機磁盤損壞的風險。授權你的 Google Drive 賬戶OAuth2 授權碼流程為了讓 Upspin 服務器能在你的 Google Drive 空間中存儲數(shù)據(jù)需要向它提供OAuth2 授權碼以完成賬戶授權。運行以下命令并把example.com替換為你的域名local$ upspin setupstorage-drive -domainexample.com命令執(zhí)行后會輸出一個 URL 供你訪問。操作流程為在瀏覽器中打開該 URL在 Google 頁面中授權 Upspin 訪問你的 Drive復制頁面顯示的授權碼將授權碼粘貼到運行命令的終端窗口中按回車。授權成功后終端應顯示如下提示You should now deploy the upspinserver binary and run upspin setupserver.這句話說明存儲環(huán)節(jié)配置完成可以進入主文檔的部署deploy與配置configure階段了。這條命令在底層做了什么setupstorage系列命令的實際作用可以從倉庫內(nèi)同名實現(xiàn)推斷。雖然 drive 專屬代碼位于外部倉庫drive.upspin.io但本地磁盤版本 cmd/upspin-setupstorage/setupstorage.go 揭示了通用機制命令讀取-where默認$HOME/upspin/deploy與-domain拼出的部署目錄并通過ReadServerConfig讀取該目錄下的serverconfig.jsonJSON 編碼的 ServerConfig隨后寫入StoreConfig字段本地版寫入backendDisk、basePath...并用WriteServerConfig持久化最后在標準錯誤輸出提示下一步操作??梢酝茢鄒pspin setupstorage-drive -domainexample.com所做的就是在完成 OAuth2 授權后把 Drive 后端所需的選項后端類型、授權憑據(jù)等寫入serverconfig.json的StoreConfig字段——這正是隨后upspin setupserver需要連同密鑰一起推送到服務器、供 StoreServer 撥號使用的關鍵配置見 subcmd/server.go 中SetupServerFiles列出的文件清單。數(shù)據(jù)存放位置與管理關于數(shù)據(jù)管理文檔給出兩條重要說明所有 Upspin 數(shù)據(jù)都存放在 Google Drive 的 Application Data 文件夾中與你的常規(guī)個人文件完全隔離。這意味著用戶在你的 Drive 主界面中看不到這些數(shù)據(jù)它們不會占用我的文件視圖也不會被誤刪或混入日常同步。你可以通過 Google Drive 的管理應用Manage Apps頁面查看并管理 Upspin 所占用的 Drive 存儲空間例如在需要清理或撤銷訪問權限時進行操作。這兩點與cloud/storage的存儲抽象是一脈相承的Upspin 只把存儲后端當作一個按引用ref存取字節(jié)塊的接口來使用后端到底落在本地磁盤還是 Drive 的隱藏應用數(shù)據(jù)區(qū)對上層邏輯完全透明。銜接主流程部署與配置服務器授權完成后回到主文檔 Set up a server and deploy 繼續(xù)部署二進制把upspinserver-drive部署到服務器并配置為開機自啟、監(jiān)聽80與443端口。任何有公網(wǎng) IP、能運行 Go 程序的機器均可Linux、macOS、Windows 等主文檔建議個人安裝至少 1 核 CPU、2GB 內(nèi)存、20GB 磁盤空間同時為upspin.example.com創(chuàng)建指向服務器 IP 的 DNSA記錄。測試連通性此時服務器處于setup mode啟動日志會出現(xiàn)Configuration file not found. Running in setup mode.用瀏覽器訪問https://upspin.example.com/應看到Unconfigured Upspin Server字樣。運行upspin setupserverlocal$ upspin setupserver -domainexample.com -hostupspin.example.com這一步實現(xiàn)在 cmd/upspin/setupserver.go會把setupdomain創(chuàng)建的服務器用戶注冊到公共密鑰服務器將$where/$domain下的Writers、public.upspinkey、secret.upspinkey、serverconfig.json通過 HTTPSPOST到服務器的/setupserver端點重啟服務器并為管理員用戶創(chuàng)建根目錄。同時它會創(chuàng)建 StoreServer 的Writers組文件upspinexample.com/Group/Writers只有列表中的用戶才被允許向該服務器寫入數(shù)據(jù)——如需擴容可參閱upspin setupwriters。驗證讀寫local$ echo Hello, Upspin | upspin put yougmail.com/hello local$ upspin get yougmail.com/hello Hello, Upspin能讀到回顯即表示整個upspinserver含 Google Drive 存儲后端已成功打通。源碼視角存儲后端是如何被插拔的理解本專題背后的插件化機制對排查問題或日后切換后端都很有幫助。核心位于 cloud/storage/storage.goStorage接口只要求四個方法LinkBase返回引用下載的基礎 URL不支持直鏈的后端返回upspin.ErrNotSupported、Download按引用取字節(jié)、Put按引用存字節(jié)、Delete按引用刪除且實現(xiàn)必須支持并發(fā)安全Lister接口可選提供帶分頁令牌的List供 StoreServer 枚舉已有引用Register(name, fn)注冊機制每個后端Disk、GCP、Drive 等在自己的init中調(diào)用storage.Register注冊構造函數(shù)例如本地磁盤后端在 cloud/storage/disk/disk.go 注冊為DiskDial(name, opts...)撥號機制按名稱查找已注冊構造器并通過WithOptions(k1v1,k2v2)或WithKeyValue傳入后端特有選項——drive 變體的upspin-setupstorage-drive所寫入的StoreConfig選項正是最終走這條路徑生效的。因此無論數(shù)據(jù)落在本地磁盤還是 Google DriveStoreServer 側看到的都是同一個字節(jié)存取抽象差異只體現(xiàn)在注冊了哪個后端以及serverconfig.json里的StoreConfig寫了什么。常見維護場景重置與重新配置如果部署過程中出現(xiàn)配置錯誤主文檔提供了重啟流程刪除$HOME/upspin/server后重跑upspin setupserver即可。需要特別注意的是該目錄同時包含目錄服務器數(shù)據(jù)與本地磁盤方案下的存儲對象刪除即等于清空全部數(shù)據(jù)而使用云存儲方案時清理后應一并刪除存儲桶中的孤立對象以免繼續(xù)為廢棄數(shù)據(jù)付費。對于 Google Drive 方案對應的清理動作即是在管理應用頁面中移除 Upspin 占用的應用數(shù)據(jù)。至此你已經(jīng)完成了以 Google Drive 為存儲后端的 Upspin 服務器搭建從構建upspinserver-drive、OAuth2 授權到部署與配置的完整鏈路都已打通接下來即可使用upspin命令行及生態(tài)工具正常讀寫你的 Upspin 樹。贊分享后端密碼學【免費下載鏈接】upspinUpspin: A framework for naming everyones everything.項目地址https://gitcode.com/gh_mirrors/up/upspin點擊查看免費下載相關推薦circleImageView4cj 圓形圖片組件從 cjpm.toml 到 hvigor 構建工程結構與打包發(fā)布全解析circleImageView4cj 圓形圖片組件從 cjpm.toml 到 hvigor 構建工程結構與打包發(fā)布全解析 circleImageView4c后端密碼學Upspin 使用 Backblaze B2 云存儲upspinserver-b2cs 服務器搭建實戰(zhàn)指南Upspin 使用 Backblaze B2 云存儲upspinserver b2cs 服務器搭建實戰(zhàn)指南 本指南是 Upspin 服務器搭建總綱doc/s后端密碼學終極指南在iOS設備上運行Minecraft Java版的完整教程終極指南在iOS設備上運行Minecraft Java版的完整教程 PojavLauncher是一個專為iOS和Android設備設計的Minecraft J游戲開發(fā)移動開發(fā)上一篇iNTERCEPT前端架構解析SSE流式數(shù)據(jù)與實時可視化實現(xiàn)下一篇jQuery DrawSVG API完全參考手冊所有配置選項與方法的詳細解析創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考