ARTICLE DETAIL

资讯详情

深耕商务建站与企业官网运营的一线实战洞察。

Upspin 服务器部署指南:以 Google Drive 作为云存储后端(upspinserver-drive 搭建实战)

Upspin 服务器部署指南:以 Google Drive 作为云存储后端(upspinserver-drive 搭建实战) 后端密码学【免费下载链接】upspinUpspin: A framework for naming everyones everything.项目地址https://gitcode.com/gh_mirrors/up/upspin点击查看免费下载导读本文是 doc/server_setup.mdupspinserver通用部署手册的配套专题专门讲解如何将 Upspin 的 StoreServer 存储层切换到 Google Drive使用户数据不再保存在服务器本地磁盘而是存放在你的 Google Drive 空间内。读完本文你将掌握构建upspinserver-drive与upspin-setupstorage-drive两个变体二进制、通过 OAuth2 授权码将服务器与 Google Drive 账户绑定、以及如何衔接upspin setupserver完成整个部署闭环同时你会从源码层面理解 Upspin 的存储后端抽象机制cloud/storage注册与拨号模型。定位与前置条件这是server_setup主流程的存储环节本指南是 Setting upupspinserver手册的一部分请先阅读该文档。在 Upspin 的部署流程中搭建一个完整安装需要依次经历五个步骤signup为管理员账户注册公共密钥configure your domain配置域名并为服务器创建 Upspin 用户setup storage即本文场景若选择云存储则配置云端存储服务deploy将upspinserver部署到 Linux 服务器configure运行upspin setupserver完成服务器配置。其中除了部署之外每一步都有对应的upspin子命令辅助完成。按 setupstorage.go 中帮助文本的定义整个流程是setupdomain第一步、setupstorage第二步、setupserver最终步——本文要做的正是中间的第二步并且是针对Google Drive这个特定存储位置的变体。在动手之前你需要备好主文档 Prerequisites 中要求的三个值一个可添加 DNS 记录的互联网域名下文沿用文档示例example.com你的 Upspin 用户名一个邮箱地址例如yougmail.com它将成为安装的管理员upspinserver将要运行的主机名例如upspin.example.com。此外请注意主文档中的命令约定local$前缀表示在本地机器执行server%前缀表示在服务器上执行。构建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 变体则在通用实现之上额外注册 Google Drive 存储后端从而让 StoreServer 把数据对象写入你的 Drive 空间而不是$HOME/upspin/storage。仓库的 serverutil/frontend/frontend.go 中也保留了drive.upspin.io: ...的映射记录印证该仓库确实是独立的 drive 实现。另外按照主文档 Set up storage 的说明你需要为服务器构建对应操作系统与处理器架构的二进制主文档假设 64 位 Linux即local$ GOOSlinux GOARCHamd64 go build drive 仓库中的 upspinserver 入口包对比如果选择服务器本地磁盘则构建upspin.io/cmd/upspinserver数据默认存于$HOME/upspin/storage但本地磁盘方案在磁盘故障时所有 Upspin 数据都会丢失。使用 Google Drive 这类云存储则可以规避单机磁盘损坏的风险。授权你的 Google Drive 账户OAuth2 授权码流程为了让 Upspin 服务器能在你的 Google Drive 空间中存储数据需要向它提供OAuth2 授权码以完成账户授权。运行以下命令并把example.com替换为你的域名local$ upspin setupstorage-drive -domainexample.com命令执行后会输出一个 URL 供你访问。操作流程为在浏览器中打开该 URL在 Google 页面中授权 Upspin 访问你的 Drive复制页面显示的授权码将授权码粘贴到运行命令的终端窗口中按回车。授权成功后终端应显示如下提示You should now deploy the upspinserver binary and run upspin setupserver.这句话说明存储环节配置完成可以进入主文档的部署deploy与配置configure阶段了。这条命令在底层做了什么setupstorage系列命令的实际作用可以从仓库内同名实现推断。虽然 drive 专属代码位于外部仓库drive.upspin.io但本地磁盘版本 cmd/upspin-setupstorage/setupstorage.go 揭示了通用机制命令读取-where默认$HOME/upspin/deploy与-domain拼出的部署目录并通过ReadServerConfig读取该目录下的serverconfig.jsonJSON 编码的 ServerConfig随后写入StoreConfig字段本地版写入backendDisk、basePath...并用WriteServerConfig持久化最后在标准错误输出提示下一步操作。可以推断upspin setupstorage-drive -domainexample.com所做的就是在完成 OAuth2 授权后把 Drive 后端所需的选项后端类型、授权凭据等写入serverconfig.json的StoreConfig字段——这正是随后upspin setupserver需要连同密钥一起推送到服务器、供 StoreServer 拨号使用的关键配置见 subcmd/server.go 中SetupServerFiles列出的文件清单。数据存放位置与管理关于数据管理文档给出两条重要说明所有 Upspin 数据都存放在 Google Drive 的 Application Data 文件夹中与你的常规个人文件完全隔离。这意味着用户在你的 Drive 主界面中看不到这些数据它们不会占用我的文件视图也不会被误删或混入日常同步。你可以通过 Google Drive 的管理应用Manage Apps页面查看并管理 Upspin 所占用的 Drive 存储空间例如在需要清理或撤销访问权限时进行操作。这两点与cloud/storage的存储抽象是一脉相承的Upspin 只把存储后端当作一个按引用ref存取字节块的接口来使用后端到底落在本地磁盘还是 Drive 的隐藏应用数据区对上层逻辑完全透明。衔接主流程部署与配置服务器授权完成后回到主文档 Set up a server and deploy 继续部署二进制把upspinserver-drive部署到服务器并配置为开机自启、监听80与443端口。任何有公网 IP、能运行 Go 程序的机器均可Linux、macOS、Windows 等主文档建议个人安装至少 1 核 CPU、2GB 内存、20GB 磁盘空间同时为upspin.example.com创建指向服务器 IP 的 DNSA记录。测试连通性此时服务器处于setup mode启动日志会出现Configuration file not found. Running in setup mode.用浏览器访问https://upspin.example.com/应看到Unconfigured Upspin Server字样。运行upspin setupserverlocal$ upspin setupserver -domainexample.com -hostupspin.example.com这一步实现在 cmd/upspin/setupserver.go会把setupdomain创建的服务器用户注册到公共密钥服务器将$where/$domain下的Writers、public.upspinkey、secret.upspinkey、serverconfig.json通过 HTTPSPOST到服务器的/setupserver端点重启服务器并为管理员用户创建根目录。同时它会创建 StoreServer 的Writers组文件upspinexample.com/Group/Writers只有列表中的用户才被允许向该服务器写入数据——如需扩容可参阅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按引用取字节、Put按引用存字节、Delete按引用删除且实现必须支持并发安全Lister接口可选提供带分页令牌的List供 StoreServer 枚举已有引用Register(name, fn)注册机制每个后端Disk、GCP、Drive 等在自己的init中调用storage.Register注册构造函数例如本地磁盘后端在 cloud/storage/disk/disk.go 注册为DiskDial(name, opts...)拨号机制按名称查找已注册构造器并通过WithOptions(k1v1,k2v2)或WithKeyValue传入后端特有选项——drive 变体的upspin-setupstorage-drive所写入的StoreConfig选项正是最终走这条路径生效的。因此无论数据落在本地磁盘还是 Google DriveStoreServer 侧看到的都是同一个字节存取抽象差异只体现在注册了哪个后端以及serverconfig.json里的StoreConfig写了什么。常见维护场景重置与重新配置如果部署过程中出现配置错误主文档提供了重启流程删除$HOME/upspin/server后重跑upspin setupserver即可。需要特别注意的是该目录同时包含目录服务器数据与本地磁盘方案下的存储对象删除即等于清空全部数据而使用云存储方案时清理后应一并删除存储桶中的孤立对象以免继续为废弃数据付费。对于 Google Drive 方案对应的清理动作即是在管理应用页面中移除 Upspin 占用的应用数据。至此你已经完成了以 Google Drive 为存储后端的 Upspin 服务器搭建从构建upspinserver-drive、OAuth2 授权到部署与配置的完整链路都已打通接下来即可使用upspin命令行及生态工具正常读写你的 Upspin 树。赞分享后端密码学【免费下载链接】upspinUpspin: A framework for naming everyones everything.项目地址https://gitcode.com/gh_mirrors/up/upspin点击查看免费下载相关推荐circleImageView4cj 圆形图片组件从 cjpm.toml 到 hvigor 构建工程结构与打包发布全解析circleImageView4cj 圆形图片组件从 cjpm.toml 到 hvigor 构建工程结构与打包发布全解析 circleImageView4c后端密码学Upspin 使用 Backblaze B2 云存储upspinserver-b2cs 服务器搭建实战指南Upspin 使用 Backblaze B2 云存储upspinserver b2cs 服务器搭建实战指南 本指南是 Upspin 服务器搭建总纲doc/s后端密码学终极指南在iOS设备上运行Minecraft Java版的完整教程终极指南在iOS设备上运行Minecraft Java版的完整教程 PojavLauncher是一个专为iOS和Android设备设计的Minecraft J游戏开发移动开发上一篇iNTERCEPT前端架构解析SSE流式数据与实时可视化实现下一篇jQuery DrawSVG API完全参考手册所有配置选项与方法的详细解析创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表
PREV
查看更多资讯
NEXT
返回资讯列表