返回资讯中心
外部精选
软件工程
#开发者实时流

开源应用 CloudDrive 让用户可在 Finder 中挂载自己的 Cloudflare R2 存储桶

来源标题:How HN: CloudDrive (Open Source) – Put Your Own Cloudflare R2 Bucket in Finder

CloudDrive 是一款可将用户自己的 Cloudflare R2 存储桶接入 macOS Finder 的开源应用,支持在 Finder 中拷贝文件并从菜单栏查看上传状态,凭据保存在 macOS Keychain 中。该应用目前处于早期开发阶段,上传前需先将整个文件暂存到本地,且未实现回收站与版本恢复功能,官方建议保留原始文件并使用专用测试前缀。该构建仅支持 Apple Silicon,需 macOS 14 或更高版本,可从 GitHub Releases 下载签名并公证的版本。

Hacker News 最新maxjasper2026/11/4 · 今天13 分钟阅读

以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。

一个小的 macOS 应用,把你的 Cloudflare R2 bucket 放进 Finder。

连接一个专用的 bucket 前缀,用 Finder 复制文件,在菜单栏里查看上传进度。凭据保存在 macOS Keychain 中。文件以普通对象的形式存储;上传的文件数据在符合条件时会自动从本地临时缓存中删除。

早期开发阶段的软件。当前版本会先把整个文件暂存到本地再上传。删除文件会删除其远程对象;回收站和版本恢复尚未实现。请保留原始文件,并使用专用的测试前缀。参见当前限制。

从 GitHub Releases 下载已签名并公证的 Apple Silicon 应用。需要 macOS 14 或更高版本。解压 CloudDrive,把它移到 Applications,然后打开。这是一个实验性版本;请保留原始文件,并使用专用的测试前缀。此构建不支持 Intel Mac。

我希望 CloudDrive 成为一个社区项目。欢迎提交 bug 报告、想法、文档、无障碍修复和代码——即使是很小的贡献也有帮助。

看看贡献指南,或者开一个 issue。你不需要 R2 账号或签名证书,就可以构建 UI 预览并运行测试。如果你不确定从哪里开始,可以在 issue 里提问。

要求:一台能运行 Xcode 26 或更高版本(包括 macOS 26 SDK)的 Apple Silicon Mac、Python 3,以及用于首次后端构建的互联网访问。应用本身支持 macOS 14 或更高版本。当前固定版本的后端构建目标是 darwin/arm64。

在 Xcode 中打开 CloudDrive.xcodeproj,选择 CloudDrive scheme 和 My Mac,然后按 ⌘R 构建并运行完整应用。先用下面的命令构建一次后端,并按照签名设置操作。Xcode 会构建两个原生 Swift target,打包后端/辅助程序/声明文件,并应用与命令行打包器相同的稳定签名检查。使用 Product → Show Build Folder in Finder 在 Products/Debug/CloudDrive.app 下找到构建好的应用。

Package.swift 仍然可用于 SwiftPM 构建和测试套件。Xcode 项目已检入仓库;无需安装项目生成器。添加或删除 Swift 源文件后,用 python3 scripts/generate-xcode-project.py 重新生成它。

从公开源码和本地补丁构建固定版本的后端。

python3 scripts/build-rclone-allocation.py

编译 Swift package。

swift build

使用你自己的签名证书打包应用。

./scripts/build-app.sh

首次后端构建会下载固定版本的 Go 工具链、rclone 和 go-nfs,校验它们的哈希值,应用分配补丁,并构建 build/backend/rclone。它还会收集依赖声明,并创建一个用于再分发的内置后端源码归档。这可能需要几分钟,并占用大量临时磁盘空间。源码仓库中不跟踪任何后端可执行文件。

打包后的应用是 build/CloudDrive.app。CloudDrive 以前名为 BucketDrive;为保持升级兼容性,现有的凭据和状态标识符被保留。在使用已保存的连接之前,请按照签名设置操作。临时预览可以编译 UI,但无法保存或迁移凭据;正常使用应用需要证书签名。

swift test python3 -m unittest discover -s Tests/Signing

Swift 测试套件包含隔离的原生 NFS 挂载和合成文件操作。请先构建后端。测试不需要你的 R2 凭据。参见开发说明了解资格验证命令和构建细节。

Sparkle 提供经用户批准的更新,并带有安全弹出保护。打包构建使用 release-config.json 中的公开 GitHub 发布配置;检查是手动的。设置 CLOUDDRIVE_DISABLE_UPDATES=1 可在本地构建中禁用更新。参见 GitHub 更新托管和本地发布准备。准备脚本从不发布或提交公证。

创建一个私有 R2 bucket 或选择一个已有的,并指定一个专用前缀。 在 CloudDrive 的设置界面中输入其 S3 endpoint、bucket、前缀和作用域访问密钥。 连接,然后在 Finder 中打开该驱动器。使用菜单中的 Transfers 项查看进度,使用 Settings 设置上传限制。 退出前先弹出驱动器。关闭窗口不会停止驱动器运行。 可选:启用 Settings → General → Open at Login,在登录时启动 CloudDrive。如果 macOS 请求批准,使用 Login Items Settings 按钮。

绝不要把密钥放进源文件或提交到 Git。大量写入需要临时本地空间。复制不会删除源原始文件。

路径 内容 Sources/ SwiftUI 应用、worker 控制器和辅助程序 Tests/ Swift 测试和签名测试 scripts/ 后端构建、打包和隔离资格验证工具 vendor/ 后端版本固定、补丁和第三方许可证 experiments/streaming-nfs/ 独立的流式写入原型;不属于应用的一部分 docs/ 开发、架构、限制和发布说明

流式原型已经演示了在原生 Finder 复制过程中上传,且本地元数据占用有界。它仅限于合成回环存储,尚不能替代应用的后端。

CloudDrive 采用 MIT 许可证。第三方代码保留其自己的许可证;参见第三方声明。参见贡献指南和安全政策。

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →