# 在 macOS 上通过 S3 浏览 Civo Object Storage。

Canonical URL: <https://civo-cloud-manager.app/zh/civo-object-storage-s3-macos/>

1.  [首页](https://civo-cloud-manager.app/zh/)
3.  通过 S3 使用 Civo Object Storage

最后更新 2026年10月18日  作者： [Marcel R. G. Berger](https://marcelrgberger.com/)

区域 endpoint，s3cmd、rclone 和 AWS CLI 的可用配置，以及原生客户端有什么不一样。

Civo Object Storage 说 S3，所以只要两件事对了，几乎任何 S3 客户端都能连上：存储所在区域的 endpoint，以及在同一个区域里创建的凭据。Civo 自己的文档走了一遍 s3cmd，剩下的工具留给你。这页直接给出 s3cmd、rclone 和 AWS CLI 的原始配置，然后讲 CivoCloudManager 走的那条路：endpoint 和访问密钥都直接从 Civo API 读出来，没有什么要手动填的。

## 为 Civo 配置一个 S3 客户端

1.  01
    
    找到你所在区域的 endpoint。
    
    Civo 的 Object Store endpoint 按 `https://objectstore.<region>.civo.com` 构造，区域代码小写，所以伦敦的存储在 `https://objectstore.lon1.civo.com`，法兰克福的在 `https://objectstore.fra1.civo.com`。每个存储也会在 Civo 控制台显示自己的 endpoint，并在 REST API 的 `objectstore_endpoint` 字段里返回。按 Civo 的区域功能总览，Object Store 在 LON1、FRA1、NYC1 和 MUM1 提供。
    
2.  02
    
    在同一个区域里创建凭据。
    
    每个 Civo Object Store 都是私有的，需要一个 access key ID 和一个 secret key。在 Civo 控制台的 Object Stores 下创建凭据时，把区域选择器切到存储所在的区域，或者用 Civo CLI。命令 civo objectstore credential export `-a` `<access_key>` 会把这一对打印成 `AWS_ACCESS_KEY_ID`、AWS\_SECRET\_ACCESS\_KEY、AWS\_DEFAULT\_REGION 和 `AWS_HOST`，可以直接粘进 shell。
    
3.  03
    
    s3cmd：host\_base 和 host\_bucket。
    
    在 `~/.s3cfg` 的 \[default\] 下设置 `host_base` = `objectstore.fra1.civo.com`、host\_bucket = `objectstore.fra1.civo.com`、bucket\_location = fra1、use\_https = True、signature\_v2 = False，再加上 `access_key` 和 `secret_key`。把 `host_bucket` 设成和 `host_base` 相同的主机名，s3cmd 就会留在 path style 寻址上，那也正是 Civo 应答的方式。之后 s3cmd ls 列出你的存储，s3cmd ls s3://STORENAME 列出其中一个，s3cmd put file.tar s3://STORENAME/backups/ 上传，s3cmd get `-r` s3://STORENAME/backups/ 把整个前缀拉下来。不写配置文件的话，这两个值就作为 `--host=` 和 `--host-bucket=` 写在命令行上。
    
4.  04
    
    rclone：一个 type 为 s3、provider 为 Other 的 remote。
    
    运行 rclone config 选 s3，或者直接把配置块写进 `~/.config/rclone/rclone.conf`：在 \[civo\] 下设置 type = s3、provider = Other、env\_auth = false，填上凭据里的 `access_key_id` 和 `secret_access_key`，再加 region = fra1、endpoint = `https://objectstore.fra1.civo.com` 和 acl = private。之后 rclone lsd civo: 列出存储，rclone ls civo:STORENAME 列出对象，rclone copy ./dir civo:STORENAME/dir -P 带进度把一个目录同步上去，rclone ncdu civo:STORENAME 给你一个文本模式的浏览器。同样的设置也可以写成一次性参数：--s3-provider Other `--s3-endpoint` `https://objectstore.fra1.civo.com` `--s3-region` fra1。
    
5.  05
    
    AWS CLI：每条命令都带 --endpoint-url。
    
    AWS CLI 不需要任何 Civo 专用插件，只要每条命令带上 endpoint：aws s3 ls `--endpoint-url` `https://objectstore.fra1.civo.com`，然后是 aws s3 ls s3://STORENAME `--endpoint-url` ... 和 aws s3 cp file.tar s3://STORENAME/ `--endpoint-url` ...。凭据来自 `AWS_ACCESS_KEY_ID` 和 `AWS_SECRET_ACCESS_KEY`，或者一个命名 profile，AWS\_DEFAULT\_REGION 要设成 Civo 的区域代码，这样 Signature V4 的作用域才对得上。新版本有个脚注：AWS CLI 2.23 及以后默认给上传加上 CRC64NVME 校验和，不是每个 S3 兼容 endpoint 都接受，所以如果 put 因为校验和报错，设置 AWS\_REQUEST\_CHECKSUM\_CALCULATION=when\_required 和 AWS\_RESPONSE\_CHECKSUM\_VALIDATION=when\_required。
    

## 会白白花掉一小时的坑：密钥绑定在一个区域上

Civo 的文档用两句很容易被扫过去的话说明了这点：Object Store 是区域相关的，管理和访问 Object Store 的凭据绑定在创建它们的那个区域。控制台停在 FRA1 时创建的密钥，拿去认证 LON1 的 endpoint 是不会通过的，哪怕是同一个账户、同一份账单。症状是一个看起来像 secret 打错了的认证或签名错误，于是自然反应是重新生成密钥，结果在同一个错误的区域里又造了一把。先看区域选择器，在存储旁边创建凭据，之后再去怀疑配置。

## 命令行覆盖不到的部分

写脚本、做备份、跑 CI，s3cmd、rclone 和 AWS CLI 就是对的答案，这里没有任何东西要取代它们。它们给不了的是对一个存储的直观感受：一棵目录树、一眼看到的大小、一片能拖出来的选择。Cyberduck 或 Transmit 这类通用的 Mac S3 客户端填上了这个空档，但它们对 Civo 一无所知，所以你要自己填 endpoint、按存储粘两把密钥，凭据每轮换一次就手动同步一次。

## 应用那条路：根本没有 endpoint 要填

CivoCloudManager 用你的 Civo API key 认证一次，从 Civo REST API v2 读取 Object Store 列表，那份列表里已经带着每个存储的 endpoint 和关联凭据。S3 客户端就是照着它构建的，所以没有 endpoint 输入框，不用粘密钥，也没有配置文件。S3 这一层是纯 Swift：AWS Signature V4 用 CryptoKit 的 HMAC-SHA256 计算，不用 AWS SDK，也不套 Electron 壳。它做的是带 continuation token 的 ListObjects v2、基于公共前缀的面包屑导航、多选，以及带实时进度的递归文件夹下载。关于它的形状，说句实在的：这个浏览器只读取和下载。上传和删除仍然归 s3cmd 或 rclone。应用需要 macOS 15 或更新版本。

## 访问密钥放在 Touch ID 后面，而不是某个 dotfile 里

就算你继续用 CLI，这一点也值得装一个应用。一套能用的 s3cmd 配置意味着 secret key 明文躺在 `~/.s3cfg` 里，rclone.conf 和 `~/.aws/credentials` 同理。任何以你的用户身份运行的进程都能读到这三个文件，任何遍历你主目录的东西也能。CivoCloudManager 把 Civo API key 放在 macOS Keychain，在界面里查看某个 Object Store 的 secret access key 要先过 Touch ID 或者系统密码。边界很明显，也得说出来：你把密钥复制到终端里的那一刻，它又变回一个明文文件了。

## 用不到的存储可以“暂停”，之后再“继续”

闲置的存储仍然按分配的容量计费。“暂停”会把每个对象复制进一个名为 civo-cloud-manager 的中央 Object Store，数据放不下就先把保险库扩容，然后把复制过去的键名和大小与源逐一比对，只有对得上才删除原始存储。账单上的这一项就消失了。“继续”会用相同的名称和相同的凭据重建存储，把对象拷回去，再校验一次键名和大小，然后清空保险库。同时最多搬四个对象。老实说清楚边界：校验比的是名称和大小，不是内容哈希；传输会把整个对象缓冲在内存里；远端 manifest 是在源被删除之后才写的，本地 manifest 作为兜底。

## 哪个客户端适合哪种活

四个都在同一个 endpoint 上说同一套 S3 API。差别在于配置放在哪里、密钥最后落在哪里，以及你能看到什么。

| 任务  | s3cmd | rclone | AWS CLI | CivoCloudManager |
| --- | --- | --- | --- | --- |
| Endpoint 配置 | ~/.s3cfg 里的 host\_base 和 host\_bucket | remote 里的 endpoint | 每条命令带 --endpoint-url | 从 Civo API 读取 |
| secret key 最后落在哪里 | ~/.s3cfg，明文 | rclone.conf，明文 | ~/.aws/credentials，明文 | macOS Keychain，查看要过 Touch ID |
| 可视化浏览一个存储 | 没有  | rclone ncdu，文本模式 | 没有  | 有，带面包屑的文件浏览器 |
| 上传和删除对象 | 支持  | 支持  | 支持  | 浏览器里没有 |
| 递归下载文件夹 | s3cmd get -r | rclone copy | aws s3 cp --recursive | 支持，带进度 |
| 暂停闲置存储以停止计费 | 不支持 | 不支持 | 不支持 | 支持，保险库，删除前先校验 |
| 能在 CI 里跑 | 能   | 能   | 能   | 不能，它是 Mac 应用 |

## 通过 S3 用 Civo Object Storage，逐个回答

### Civo Object Storage 的 endpoint 地址是什么？

Civo 的 Object Store endpoint 遵循 `https://objectstore.<region>.civo.com` 这个模式，区域代码小写，例如伦敦是 `https://objectstore.lon1.civo.com`，法兰克福是 `https://objectstore.fra1.civo.com`。endpoint 取决于存储创建时所在的区域。每个存储也会在 Civo 控制台显示自己的 endpoint，并在 Civo REST API 的 `objectstore_endpoint` 字段里返回。

### Civo Object Storage 能用 s3cmd 或 rclone 吗？

两个都能用，AWS CLI 和任何其他 S3 兼容客户端也能。s3cmd 这边，把 `~/.s3cfg` 里的 `host_base` 和 `host_bucket` 设成区域主机名，例如 `objectstore.fra1.civo.com`，再填上 `access_key` 和 `secret_key`。rclone 这边，建一个 type = s3、provider = Other、endpoint = `https://objectstore.fra1.civo.com` 的 remote，配同一对密钥。AWS CLI 这边，每条命令加上 `--endpoint-url` `https://objectstore.fra1.civo.com`。

### Civo Object Storage 的访问密钥为什么用不了？

常见原因是区域。Civo 明确说明 Object Store 是区域相关的，凭据绑定在创建它们的那个区域，所以在 FRA1 创建的密钥拿去认证 LON1 的 endpoint 不会通过，哪怕属于同一个账户。创建凭据时，把控制台切到存储所在的区域。第二个常见原因是客户端压根没收到 endpoint，或者 s3cmd 的 `host_bucket` 还停在默认值，于是请求发去了 Amazon 而不是 Civo。

### Mac 上有 Civo Object Storage 的图形界面吗？

CivoCloudManager 是原生 macOS 应用，需要 macOS 15 或更新版本，在 Mac App Store 上架，而且它认识 Civo：每个存储的 endpoint 和访问密钥都从 Civo API 读取，没有什么要配置的。它用面包屑浏览，能下载单个文件、一批多选，或者整个文件夹递归下载，上传和删除仍然留给命令行。Cyberduck 或 Transmit 这类通用 S3 客户端也能连 Civo，前提是你自己填 endpoint 并按存储粘上两把密钥。

### 暂停会对我在 Civo Object Store 里的数据做什么？

“暂停”会把每个对象复制进你自己 Civo 账户里一个名为 civo-cloud-manager 的中央 Object Store，把复制过去的键名和大小与源比对，然后才删除原始存储，让它不再产生费用。“继续”会用相同的名称和相同的凭据重建存储，把对象拷回去，并在清空保险库之前再次校验键名和大小。数据始终没有离开你的 Civo 账户，校验按名称和大小进行，不是内容哈希。

指南

## 一步一步，以及诚实的对比。

-   [01 连接 Civo API Key 在 Civo 控制台生成密钥，粘贴一次，之后交给 macOS Keychain 保管。](https://civo-cloud-manager.app/zh/connect-civo-api-key-mac/)
-   [02 为你的 IP 开防火墙 手动流程、它留下的动态 IP 隐患，以及一条免费的菜单栏路径：到点自动关掉规则。](https://civo-cloud-manager.app/zh/open-civo-firewall-for-your-ip/)
-   [03 对比 Lens、OpenLens 和 k9s 三个与集群无关的工具，一个只认 Civo 的。差别决定了你想开着哪一个。](https://civo-cloud-manager.app/zh/civo-kubernetes-gui-vs-lens-k9s/)
-   [04 Mac 上的 Civo DNS 把域名指向 Civo 的 nameserver，之后把这个 zone 放在原生应用里管，而不是一个浏览器标签页。](https://civo-cloud-manager.app/zh/civo-dns-manager-mac/)
-   [05 更新日志 每一个已发布的版本，最新的在前，附带商店更新说明装不下的细节。](https://civo-cloud-manager.app/zh/changelog/)

深入了解

## 按 Civo 产品拆开细说。

CivoCloudManager 覆盖的每个 Civo 领域都有单独一页，讲清细节、取舍和架构。挑一个离你日常最近的。

-   [01 Mac 上的 Civo CLI 替代方案 图形界面在哪些地方赢过 CLI，哪些地方不如，以及两者怎么共存。](https://civo-cloud-manager.app/zh/civo-cli-alternative/)
-   [02 Mac 上的 Civo Kubernetes 图形界面 实时集群仪表盘、实时 pod 日志，不需要 kubectl。](https://civo-cloud-manager.app/zh/civo-kubernetes-gui/)
-   [03 Mac 上的 Civo Object Storage 浏览器 原生的 S3 兼容浏览器。闲置 bucket 可暂停到中央保险库。](https://civo-cloud-manager.app/zh/civo-object-storage-browser/)
-   [04 在 Mac 菜单栏管理 Civo 防火墙 每个防火墙一键开关，自动识别 IP，支持自动关闭定时器。](https://civo-cloud-manager.app/zh/civo-firewall-mac/)
-   [05 Mac 上的 Civo 费用仪表盘 来自 Civo charges API 的真实费用。周期选择器和月末预测。](https://civo-cloud-manager.app/zh/civo-cost-dashboard/)
-   [06 Civo 区域 哪些 Civo 产品在哪个区域运行，GPU 在哪里，以及 CivoCloudManager 如何把四个区域放进一个窗口。](https://civo-cloud-manager.app/zh/civo-regions/)

## 跳过 endpoint 配置。

CivoCloudManager 从你自己的 Civo 账户读取 endpoint 和访问密钥，所以存储是直接打开的，不需要一个配置文件。菜单栏档位免费，完整仪表盘在 Mac App Store 一次性买断。

[在 Mac App Store 下载](https://apps.apple.com/cn/app/civocloudmanager-kubernetes/id6760776010?mt=12)

需要 macOS 15 (Sequoia) 或更新版本。

[返回首页](https://civo-cloud-manager.app/zh/)
