文件集
文件集是一个轻而易举的高性能 TypeScript 静态网络服务器,用于 高流量静态网站。 特征包括:
- 原子部署
- (将执行) 计划部署
- 重定向
- 本地化 -- -- 认识方向调整
- 以谷歌账户认证为后盾的孤立的每个分支集成环境
- 超快TTFB和有效载荷传输速度
- 用于检查上传文件的简单网络用户界面
服务器运行于Google App Engine上并代理请求到Google Cloud存储.
概念
许多网站可以作为完全静态的内容(即仅是HTML, CSS,和JavaScript – 没有动态后端). 尽管是静态的内容, 网站可能还有其他要求,如本地化、重定向或 原子部署,最终将微小的动态功能添加到一个 否则完全静止的项目.
文件集旨在通过在Google上提供一薄的中层来弥补差距 云存储:静态文件通过CLI上传到Google Cloud存储, 与文件集服务器处理请求流量。 服务器是否决定 发布带有上述动态特征之一的响应 利用Google的功能 全球业绩网络.
目录
使用量
使用文件集需要两项主要任务:
- 首先 你得部署服务器 这只需要做一次, 当项目最初设置时.
- 第二,你需要上传文件 供服务。 每个文件必须上传 您想要服务新文件、 更新重定向等的时间 .
服务器设置
-
在您的项目中, 创建一个目录来容纳服务器配置, 例如 .
./backend/server。 。 。 . -
复制文件从 ./例/服务器/ 输入此目录.
-
修改设置
app.yaml财务报告和审定财务报表secrets.yaml。 。 。 . -
使用所提供的设置和部署应用程序 创建文件。该应用程序将被部署在一个 App 命名为引擎服务
fileset,所以不会与您的当前冲突 部署.
make project=<AppId> setup
make project=<AppId> deploy
上传文件
- 创建一个
fileset.yaml配置文件 . 最低限度的例子如下。 见 页:1 示例文件et.yaml 用于完整配置 选项.
google_cloud_project: <AppId>
-
生成您的文件 . 使用静态站点生成器或只手工创建包含文件的目录 上传。 在下面的第(3)步中,目录中的文件
./build为: 上传. -
上传文件 . 上传者将寻找
fileset.yaml内部 首先指定目录。 如果找不到,它会在父母那里抬头看 文件夹。 如果两个文件夹中都没有配置文件, 上传者会 中止 .
npx fileset upload ./build
就这样! 文件已上传到 Google Cloud 存储并上传 目录现在由应用程序服务器服务 。 您可以通过 访问:
https://fileset-dot-<AppId>.appspot.com
上传认证
需要认证才能上传文件 并部署服务清单.
本地测试( 使用用户账户进行认证)
如果您正在本地测试, 您的用户账户可用于认证到 云数据库与云存储. 只需运行以下命令即可创建 用于认证的证书 :
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).
提供的情况 创建文件 还设置了谷歌云 为您建立权限 .
make project=<AppId> setup
环境
Fileset 使用 Git 分支来确定文件是否应该在生产中
(和公开)或在中转(并通过Google账户认证加以限制).
吉特分行是在检查当地吉特环境时确定的
upload 命令被引用.
了解这种做法的最佳方式是采用以下例子:
# 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
# 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.
npx @blinkk/amagaki build
npx @blinkk/fileset upload build
用到 grow.dev 时
第一,把场地建到 ./build 目录。 然后,上传目录到 Fileset.
grow build --deployment=prod
npx @blinkk/fileset upload build