# @axnic/pulumi-garage 中文文档

规范地址：https://npmcn.com/package/%40axnic/pulumi-garage/

版本：1\.1\.2
npm 元数据更新时间：2026-10-06T22:29:46.507Z
中文译文更新时间：2026-11-07T17:10:31.930Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40axnic/pulumi-garage
原文对照：https://npmcn.com/package/%40axnic/pulumi-garage/?lang=original
项目主页：https://github.com/axnic/pulumi-garage
源码仓库：https://github.com/axnic/pulumi-garage

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：89.8 kB，47 个文件
- TypeScript 类型：包内自带
- 运行依赖：1 个
- 首次发布：2026-07-14T22:06:35.955Z
- 最新版本发布：2026-10-06T22:29:46.243Z
- 近 30 天下载量：3953（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：4（近 12 个月 4 个）

## 中文简介

[![CI](https://github.com/axnic/pulumi-garage/actions/workflows/merge_group%2Cpull_request%2Cpush.qa.yaml/badge.svg?branch=main)](https://github.com/axnic/pulumi-garage/actions/workflows/merge_group%2Cpull_request%2Cpush.qa.yaml) \[! \[GitHub发布\] (https:

## 安装

```sh
npm install @axnic/pulumi-garage
```

也可以使用：`pnpm add @axnic/pulumi-garage`、`yarn add @axnic/pulumi-garage`、`bun add @axnic/pulumi-garage`

## README

[![CI](https://github.com/axnic/pulumi-garage/actions/workflows/merge_group%2Cpull_request%2Cpush.qa.yaml/badge.svg?branch=main)](https://github.com/axnic/pulumi-garage/actions/workflows/merge_group%2Cpull_request%2Cpush.qa.yaml) [![GitHub release](https://img.shields.io/github/v/release/axnic/pulumi-garage?logo=github&sort=semver)](https://github.com/axnic/pulumi-garage/releases/latest) [![Go Reference](https://pkg.go.dev/badge/github.com/axnic/pulumi-garage/sdk/go/pulumi-garage.svg)](https://pkg.go.dev/github.com/axnic/pulumi-garage/sdk/go/pulumi-garage) [![npm version](https://img.shields.io/npm/v/%40axnic%2Fpulumi-garage.svg)](https://www.npmjs.com/package/@axnic/pulumi-garage) [![PyPI version](https://img.shields.io/pypi/v/pulumi_garage.svg)](https://pypi.org/project/pulumi_garage/) [![NuGet version](https://img.shields.io/nuget/v/Axnic.Pulumi.Garage.svg)](https://www.nuget.org/packages/Axnic.Pulumi.Garage/) [![License](https://img.shields.io/github/license/axnic/pulumi-garage.svg)](https://npmcn.com/package/%40axnic/pulumi-garage/LICENSE)

# 普鲁米停车场提供者

管理 Pulumi 本地供应商 [停车场](https://garagehq.deuxfleurs.fr/)页:1 自行托管,S3兼容的分布式对象存储系统,通过其Admin API.

它管理三种资源: **`Bucket`** (带有可选的全球别名,静态网站) (a) 东道方和储存配额, **`Key`** (S3访问密钥),以及 **`BucketKeyPermission`** (a) 读取/写出/拥有 `Key` 编号 `Bucket`) (中文(简体) ). 组 拖带(节点、区域、容量、布局)已超出范围----见 [已知的限制](https://npmcn.com/package/%40axnic/pulumi-garage/#readme-known-limitations)。 。 。 .

> \[注\] **证相.** 此提供者由AI编码代理( Claude) 所建端到端 在一个自主的,“vibe编码”的会话中,没有人审查实施情况 逐行排列。 这个项目是故意要靠自动测试 而不是手动审查置信性:对行政API客户端进行单位测试 每个资源创建/读取/更新/删除逻辑,加上一个真正的端到端套件 在多克建立实际的停车场集群并进行练习(包括真正的S3) 对象通过授权上传/下载) - 见 [捐款额](https://npmcn.com/package/%40axnic/pulumi-garage/CONTRIBUTING.md)。 。 。 . 自己审查代码,然后信任它与生产数据.

## 安装

此软件包有几种语言版本。 只有Go和YAML SDK两个 使用此 repo 本身的示例和 E2E 测试(参见 [已知的限制](https://npmcn.com/package/%40axnic/pulumi-garage/#readme-known-limitations);其他则为 方便,但除此之外,该项目没有经过测试.

### 节点.js (JavaScript/TypeScript) (中文(简体) )

```bash
npm install @axnic/pulumi-garage
```

### 蟒

```bash
pip install pulumi_garage
```

### 走开

```bash
go get github.com/axnic/pulumi-garage/sdk/go/pulumi-garage
```

### . NET 网络

```bash
dotnet add package Axnic.Pulumi.Garage
```

提供方二进制本身不需要上述任何一种 `pulumi plugin install resource garage <version>` (或引擎的自动分辨率)直接取出 从这repo的 [GitHub 发布](https://github.com/axnic/pulumi-garage/releases),没有 需要列入普鲁米登记册.

## 快速启动

通过堆栈配置将提供者指向您的 Garage 集群的 Admin API :

```bash
pulumi config set garage:endpoint http://localhost:3903
pulumi config set garage:adminToken <token> --secret
```

或 `GARAGE_ADMIN_ENDPOINT` 编号 : `GARAGE_ADMIN_TOKEN` 环境变量。 这个 提供者不会为您设置一个 Gardage 集群 - 见 [(原始内容存档于2018-10-21). carshq.deuxfleurs.fr](https://garagehq.deuxfleurs.fr/) 用来设置一个 (单位:千美元)`garage layout assign`编号 :`apply`,或 `--single-node` 用于单个节点集群.

然后,一个最小的YAML程序(见 [`examples/yaml/Pulumi.yaml`](https://npmcn.com/package/%40axnic/pulumi-garage/examples/yaml/Pulumi.yaml), (中文(简体) ), 或者说 [`examples/go/main.go`](https://npmcn.com/package/%40axnic/pulumi-garage/examples/go/main.go) 对等号:

```yaml
name: garage-example-yaml
runtime: yaml

resources:
  myKey:
    type: garage:Key
    properties:
      name: my-app-key
  myBucket:
    type: garage:Bucket
    properties:
      globalAlias: my-app-bucket
  myPermission:
    type: garage:BucketKeyPermission
    properties:
      bucketId: ${myBucket.id}
      accessKeyId: ${myKey.accessKeyId}
      permissions:
        read: true
        write: true

outputs:
  bucketId: ${myBucket.id}
  accessKeyId: ${myKey.accessKeyId}
  secretAccessKey: ${myKey.secretAccessKey}
```

## 配置

| 密钥 | Env var 倒计时 | 说明 |
| --- | --- | --- |
| `garage:endpoint` | `GARAGE_ADMIN_ENDPOINT` | Garage Admin API的基础URL,例如:. `"http://localhost:3903"`。 。 。 . |
| `garage:adminToken` (秘诀) | `GARAGE_ADMIN_TOKEN` | 对停车场管理员API授权的无记名证. |
| `garage:s3Endpoint` | `GARAGE_S3_ENDPOINT` | 停车场S3 API的基础URL,例如:. `"http://localhost:3900"`。仅需要用于 `Bucket`是因为 `lifecycleRules`。 。 。 . |
| `garage:s3Region` | `GARAGE_S3_REGION` | S3区域签署请求. 默认为 `"garage"` 如果未设置. |
| `garage:accessKeyId` | `GARAGE_S3_ACCESS_KEY_ID` | 与停车场S3 API相对应的登录密钥ID授权. 仅需 `lifecycleRules`。 。 。 . |
| `garage:secretAccessKey` (秘诀) | `GARAGE_S3_SECRET_ACCESS_KEY` | 密钥配对 `accessKeyId`。仅需要用于 `lifecycleRules`。 。 。 . |

`endpoint`编号 :`adminToken` 以某种方式 -- -- 提供者未能 如果配置密钥及其内嵌 var 后退没有设定, 则配置 。 S3场是 可选且仅需管理 `Bucket`是因为 `lifecycleRules` (生命周期规则是: 只能通过 Garce 的 S3 API , 而不是它的管理员 API ; 如果您设置了其中之一 `s3Endpoint`编号 :`accessKeyId`编号 :`secretAccessKey`,你必须设置所有三个.

## 兼容性

这家提供商与Garge's Admin API v2,Garge v2.0.0中引入的Garge v. 每个 下面的版本根据完整的实例程序生命周期进行测试(创建/更新/删除) 加上一个真实的 S3 对象上传/下载) 在自己的 CI 工作流程中,所以它的徽章反映了 单是这个版本,而不是一个集合:

| 停车场版本 | 状态 |
| --- | --- |
| 页:1 | [![E2E (Garage v2.0.0)](https://github.com/axnic/pulumi-garage/actions/workflows/merge_group%2Cpull_request%2Cpush.e2e-v2.0.0.yaml/badge.svg?branch=main)](https://github.com/axnic/pulumi-garage/actions/workflows/merge_group%2Cpull_request%2Cpush.e2e-v2.0.0.yaml) |
| 页:1 | [![E2E (Garage v2.1.0)](https://github.com/axnic/pulumi-garage/actions/workflows/merge_group%2Cpull_request%2Cpush.e2e-v2.1.0.yaml/badge.svg?branch=main)](https://github.com/axnic/pulumi-garage/actions/workflows/merge_group%2Cpull_request%2Cpush.e2e-v2.1.0.yaml) |
| 页:1 | [![E2E (Garage v2.2.0)](https://github.com/axnic/pulumi-garage/actions/workflows/merge_group%2Cpull_request%2Cpush.e2e-v2.2.0.yaml/badge.svg?branch=main)](https://github.com/axnic/pulumi-garage/actions/workflows/merge_group%2Cpull_request%2Cpush.e2e-v2.2.0.yaml) |
| 页:1 | [![E2E (Garage v2.3.0)](https://github.com/axnic/pulumi-garage/actions/workflows/merge_group%2Cpull_request%2Cpush.e2e-v2.3.0.yaml/badge.svg?branch=main)](https://github.com/axnic/pulumi-garage/actions/workflows/merge_group%2Cpull_request%2Cpush.e2e-v2.3.0.yaml) |
| 页:1 | [![E2E (Garage v2.4.0)](https://github.com/axnic/pulumi-garage/actions/workflows/merge_group%2Cpull_request%2Cpush.e2e-v2.4.0.yaml/badge.svg?branch=main)](https://github.com/axnic/pulumi-garage/actions/workflows/merge_group%2Cpull_request%2Cpush.e2e-v2.4.0.yaml) |

每个工作流程`.github/workflows/merge_group,pull_request,push.e2e-v2.*.yaml`)为 中央可重复使用的 E2E 工作流程的薄调取器 `axnic/.github` 与该版本绑定(新版本由repo的E2E同步工作流程所添加,该工作流程打开了PR) - GitHub 动作状态徽章是每个工作流程文件,而不是每个程序腿,这就是为什么 这是五个小文件而不是一个 `strategy.matrix` 任务. `--single-node` (单位:千美元) 快速布局- bootstrap path)只存在于从 Garage v2.3.0 上,所以 `docker-compose.yml` 财务报告和审定财务报表 `scripts/bootstrap-garage.sh` 总是使用手册 `layout assign`编号 :`apply` 反之,这五只靴子都一样 各个版本.

## 已知的限制

这是一个v1,个人/小型org供应商 - 范围有意缩小:

-   **没有集群布局管理.** 指定节点、区和能力不是 由这个供应商管理,它是一个一发的靴子陷阱操作 不适合 净入一能的IaC. Bootstrap你自己的停车场集群(如:. `garage layout assign`编号 :`apply`,或 `--single-node` 在停车场v2.3.0+)之前 指此供养.
-   **`Bucket` 只支持单一的全局别名.** 无本地( 每键) 化名, 不 多个全球别名.
-   **`Key`全球 `createBucket` 权限不是模拟**故意的 故意的 不够可靠,没有进一步验证 API.
-   **删除非空 `Bucket` 失败.** 这个镜像是Garage(和S3的)自己的原生 行为;是故意的,不是虫子.
-   **CI/E2E中只执行YAML和Go等例程序.** 节点,蟒蛇, 和点网 SDK 生成并发布(参见 [安装](https://npmcn.com/package/%40axnic/pulumi-garage/#readme-installing)不过 不包括雷波的样本程序 或生命周期测试.
-   **没有Java/Maven SDK.** 普鲁米对爪哇的支持太少了 无法证明 额外设置成本(Sonatype命名空间验证,GPG签名发布);节点, python, dotnet,并去SDK覆盖生态系统的实际使用.

## 参考文献

这家供货商没有在 [Pulumi 书记官处](https://www.pulumi.com/registry/), (中文(简体) ), 所以没有 `pulumi.com/registry/packages/garage` 链接生成的页面, 每个资源 API 文档。 在此之前:

-   这个 **参考 SDK** 打开 [pkg.go.dev (英语)](https://pkg.go.dev/github.com/axnic/pulumi-garage/sdk/go/pulumi-garage) 由普鲁米书记处制作的同样图案说明产生 是最完整的逐个字段的参考文献(在第一个字段之后使用) 标记放出 - 见 [相关内容](https://npmcn.com/package/%40axnic/pulumi-garage/RELEASING.md)) (中文(简体) ).
-   这个 [`Quickstart`](https://npmcn.com/package/%40axnic/pulumi-garage/#readme-quickstart) 财务报告和审定财务报表 [`Configuration`](https://npmcn.com/package/%40axnic/pulumi-garage/#readme-configuration) 以上各节 涵盖三个资源和提供者配置结束;基本方案是 `provider/cmd/pulumi-resource-garage/schema.json` (生成而非手持也.

## 捐款

见 [捐款额](https://npmcn.com/package/%40axnic/pulumi-garage/CONTRIBUTING.md) 用于构建提供者,测试层 (包括如何在本地运行 E2E 套件),生成 SDKs, 和去除相机 设置。 也见我们的 [行为守则](https://npmcn.com/package/%40axnic/pulumi-garage/CODE-OF-CONDUCT.md)。 。 。 .

## 许可证

[阿帕奇 - 2.0](https://npmcn.com/package/%40axnic/pulumi-garage/LICENSE)

## 常见问题

### @axnic/pulumi-garage 是什么？

\[\! \[GitHub发布\] \(https:

### 如何安装 @axnic/pulumi-garage？

在项目目录运行 npm install @axnic/pulumi-garage，或使用 pnpm add / yarn add / bun add。

### @axnic/pulumi-garage 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @axnic/pulumi-garage 可以商用吗？

@axnic/pulumi-garage 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @axnic/pulumi-garage 的下载量有多少？

根据 npm 官方下载统计，@axnic/pulumi-garage 在 2026/10/08 – 2026/11/06 这 30 天内被下载 3,953 次，日均约 132 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @axnic/pulumi-garage 还在维护吗？

最新版本 1\.1\.2 发布于 2026/10/07（1 个月前）；至今共发布 4 个版本，其中过去 12 个月发布了 4 个；首次发布于 2026/07/15。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

