# @blinkk/fileset 中文文档

规范地址：https://npmcn.com/package/%40blinkk/fileset/

版本：0\.10\.0
npm 元数据更新时间：2024-01-08T18:43:40.066Z
中文译文更新时间：2026-11-08T06:54:51.710Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：556 kB，65 个文件
- TypeScript 类型：未声明
- Node.js 要求：\>=10\.0\.0
- 运行依赖：20 个
- 首次发布：2020-12-27T06:15:41.914Z
- 最新版本发布：2024-01-08T18:43:39.853Z
- 近 30 天下载量：2093（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：80（近 12 个月 0 个）

## 中文简介

\[!\]\[NPM版本\]\[npm-image\] \[npm-url\] \[! \[GitHub Actions\]\[github-image\]\]\[github-url\] \[!\]\[依赖状态\]\[david-image\]\]\[david-url\] \[!\]\[知道脆弱 \[snyk-image\]\]\[snyk-url\] \[!\[codecov\]\[codecov-image\]\]\[codecov-url\] \[!\]\[TypeScript样式指南\]\[gts-imag\]

## 安装

```sh
npm install @blinkk/fileset
```

也可以使用：`pnpm add @blinkk/fileset`、`yarn add @blinkk/fileset`、`bun add @blinkk/fileset`

## README

# 文件集

[![NPM Version](https://img.shields.io/npm/v/@blinkk/fileset.svg)](https://npmjs.org/package/@blinkk/fileset) [![GitHub Actions](https://github.com/blinkkcode/fileset/workflows/Run%20tests/badge.svg)](https://github.com/blinkkcode/fileset/actions) [![Dependency Status](https://david-dm.org/blinkkcode/fileset.svg)](https://david-dm.org/blinkkcode/fileset) [![Known Vulnerabilities](https://snyk.io/test/github/blinkkcode/fileset/badge.svg)](https://snyk.io/test/github/blinkkcode/fileset) [![codecov](https://codecov.io/gh/blinkkcode/fileset/branch/main/graph/badge.svg)](https://codecov.io/gh/blinkkcode/fileset) [![TypeScript Style Guide](https://img.shields.io/badge/code%20style-google-blueviolet.svg)](https://github.com/google/gts)

文件集是一个轻而易举的高性能 TypeScript 静态网络服务器,用于 高流量静态网站。 特征包括:

-   原子部署
-   (将执行) 计划部署
-   重定向
-   本地化 -- -- 认识方向调整
-   以谷歌账户认证为后盾的孤立的每个分支集成环境
-   超快TTFB和有效载荷传输速度
-   用于检查上传文件的简单网络用户界面

服务器运行于Google App Engine上并代理请求到Google Cloud存储.

## 概念

许多网站可以作为完全静态的内容(即仅是HTML, CSS,和JavaScript – 没有动态后端). 尽管是静态的内容, 网站可能还有其他要求,如本地化、重定向或 原子部署,最终将微小的动态功能添加到一个 否则完全静止的项目.

文件集旨在通过在Google上提供一薄的中层来弥补差距 云存储:静态文件通过CLI上传到Google Cloud存储, 与文件集服务器处理请求流量。 服务器是否决定 发布带有上述动态特征之一的响应 利用Google的功能 全球业绩网络.

## 目录

-   [概念](https://npmcn.com/package/%40blinkk/fileset/#readme-concept)
-   [使用量](https://npmcn.com/package/%40blinkk/fileset/#readme-usage)
    -   [服务器设置](https://npmcn.com/package/%40blinkk/fileset/#readme-server-setup)
    -   [上传文件](https://npmcn.com/package/%40blinkk/fileset/#readme-upload-files)
-   [上传认证](https://npmcn.com/package/%40blinkk/fileset/#readme-uploader-authentication)
    -   [本地测试( 使用用户账户进行认证)](https://npmcn.com/package/%40blinkk/fileset/#readme-local-testing-authenticate-using-user-account)
    -   [持续部署(使用服务账户进行认证)](https://npmcn.com/package/%40blinkk/fileset/#readme-continuous-deployment-authenticate-using-service-account)
-   [环境](https://npmcn.com/package/%40blinkk/fileset/#readme-environments)
-   [测试](https://npmcn.com/package/%40blinkk/fileset/#readme-testing)
    -   [答复信头](https://npmcn.com/package/%40blinkk/fileset/#readme-response-headers)
    -   [查询参数](https://npmcn.com/package/%40blinkk/fileset/#readme-query-parameters)
-   [提示](https://npmcn.com/package/%40blinkk/fileset/#readme-tips)
    -   [Makefile内使用](https://npmcn.com/package/%40blinkk/fileset/#readme-usage-within-makefile)
    -   [用阿玛加基](https://npmcn.com/package/%40blinkk/fileset/#readme-usage-with-amagaki)
    -   [用到 grow.dev 时](https://npmcn.com/package/%40blinkk/fileset/#readme-usage-with-growdev)

## 使用量

使用文件集需要两项主要任务:

1.  首先 你得部署服务器 这只需要做一次, 当项目最初设置时.
2.  第二,你需要上传文件 供服务。 每个文件必须上传 您想要服务新文件、 更新重定向等的时间 .

### 服务器设置

1.  在您的项目中, 创建一个目录来容纳服务器配置, 例如 . `./backend/server`。 。 。 .
    
2.  复制文件从 [./例/服务器/](https://npmcn.com/package/%40blinkk/fileset/example/server/) 输入此目录.
    
3.  修改设置 `app.yaml` 财务报告和审定财务报表 `secrets.yaml`。 。 。 .
    
4.  使用所提供的设置和部署应用程序 [创建文件](https://npmcn.com/package/%40blinkk/fileset/example/server/Makefile)。该应用程序将被部署在一个 App 命名为引擎服务 `fileset`,所以不会与您的当前冲突 部署.
    

```bash
make project=<AppId> setup
make project=<AppId> deploy
```

### 上传文件

1.  **创建一个 `fileset.yaml` 配置文件 .** 最低限度的例子如下。 见 页:1 [示例文件et.yaml](https://npmcn.com/package/%40blinkk/fileset/example/fileset.yaml) 用于完整配置 选项.

```yaml
google_cloud_project: <AppId>
```

2.  **生成您的文件 .** 使用静态站点生成器或只手工创建包含文件的目录 上传。 在下面的第(3)步中,目录中的文件 `./build` 为: 上传.
    
3.  **上传文件 .** 上传者将寻找 `fileset.yaml` 内部 首先指定目录。 如果找不到,它会在父母那里抬头看 文件夹。 如果两个文件夹中都没有配置文件, 上传者会 中止 .
    

```bash
npx fileset upload ./build
```

就这样! 文件已上传到 Google Cloud 存储并上传 目录现在由应用程序服务器服务 。 您可以通过 访问:

```
https://fileset-dot-<AppId>.appspot.com
```

## 上传认证

需要认证才能上传文件 并部署服务清单.

### 本地测试( 使用用户账户进行认证)

如果您正在本地测试, 您的用户账户可用于认证到 云数据库与云存储. 只需运行以下命令即可创建 用于认证的证书 :

```bash
gcloud auth application-default login
```

### 持续部署(使用服务账户进行认证)

如果你使用一个服务账户来部署, 你需要确保它有 正确的权限。 使用 Google Cloud 构建的文件集时, 只需运行 `make setup` 从 `example/server` 配置您的工程的目录 Cloud Build Service 账户,有正确的权限 .

需要下列权限:

-   云数据库(这里存储的有: 云数据库所有者) (单位:千美元)`datastore.owner`(中文(简体) )
-   云存储( 文件在此上传): 存储对象管理 (单位:千美元)`storage.objectAdmin`(中文(简体) )

如果使用 Cloud 构建服务账户(或任何其他服务账户),您将会 需要将上述两个权限添加到账户中。 可以通过 IAM 页面(`https://console.cloud.google.com/access/iam?project=<AppId>`或通过 页:1 `gcloud` CLI(英语:CLI).

提供的情况 [创建文件](https://npmcn.com/package/%40blinkk/fileset/example/server/Makefile) 还设置了谷歌云 为您建立权限 .

```bash
make project=<AppId> setup
```

## 环境

Fileset 使用 Git 分支来确定文件是否应该在生产中 (和公开)或在中转(并通过Google账户认证加以限制). 吉特分行是在检查当地吉特环境时确定的 `upload` 命令被引用.

了解这种做法的最佳方式是采用以下例子:

```bash
# main branch
# ✓ public
# ✓ production URL
# ✓ also available from staging URLs (restricted)

(main) $ npx fileset upload build
...
Public URL:            https://appid.appspot.com
URL (via commit):      https://f3a9abb-dot-fileset-dot-appid.appspot.com
URL (via branch name): https://master-dot-fileset-dot-appid.appspot.com
```

```bash
# staging branch
# ✓ not public
# ✓ staging URL only (restricted)

(staging) $ npx fileset upload build
...
URL (via commit):      https://4fb48ce-dot-fileset-dot-appid.appspot.com
URL (via branch name): https://staging-dot-fileset-dot-appid.appspot.com
```

## 测试

### 答复信头

您可以通过查找以下标题来验证 Fileset 服务器正常工作 :

| 页眉 | 说明 |
| --- | --- |
| `x‑fileset‑site` | 服务地点。 通常这样 `default` 但是,对于多地点设施来说,这将有利于确定哪些地点正在使用. |
| `x‑fileset‑ref` | 吉特承诺的sha符合 正在处理您请求的原始清单. |
| `x‑fileset‑blob` | 服务文件对应的 blob 目录密钥 。 这是文件内容的SHA-1散列. |
| `x‑fileset‑ttl` | 对于预定的部署,本标题的值将对应所服务定时部署的时间戳. |

### 查询参数

您可以使用查询参数模拟地理定位行为 :

| 参数 | 名称 | 说明 |
| --- | --- | --- |
| `hl` | 语言 | 覆盖来信 `accept-language` 头曰. |
| `gl` | 地理位置 | 覆盖来信 `x-appengine-country` 头曰. |
| `ncr` | 没有国家重新定向 | 禁用本地化- 意识重定向 . |

## 提示

### Makefile内使用

通往 `fileset` 可以指定可执行文件以引用 CLI .

```
./node_modules/.bin/fileset upload build
```

### 用阿玛加基

第一,把场地建到 `./build` 目录。 然后,上传目录到 Fileset.

```shell
npx @blinkk/amagaki build
npx @blinkk/fileset upload build
```

### 用到 grow.dev 时

第一,把场地建到 `./build` 目录。 然后,上传目录到 Fileset.

```shell
grow build --deployment=prod
npx @blinkk/fileset upload build
```

## 常见问题

### @blinkk/fileset 是什么？

\[\!\]\[NPM版本\]\[npm-image\] \[npm-url\] \[\! \[GitHub Actions\]\[github-image\]\]\[github-url\] \[\!\]\[依赖状态\]\[david-image\]\]\[david-url\] \[\!\]\[知道脆弱 \[snyk-image\]\]\[snyk-url\] \[\!\[codecov\]\[codecov-image\]\]\[codecov-url\] \[\!\]\[TypeScript样式指南\]\[gts-imag\]

### 如何安装 @blinkk/fileset？

在项目目录运行 npm install @blinkk/fileset，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 fileset，可以用 npx fileset 直接运行。

### @blinkk/fileset 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/blinkk\_\_fileset 是否存在。

### @blinkk/fileset 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=10\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @blinkk/fileset 可以商用吗？

@blinkk/fileset 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @blinkk/fileset 的下载量有多少？

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

### @blinkk/fileset 还在维护吗？

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

