构建静态 Web 站点
本教程说明如何在 IBM Cloud® Object Storage上 托管静态 Web 站点,包括创建存储区,上载内容和配置新 Web 站点。
使用 IBM Cloud Object Storage 托管静态 Web 站点为公共访问提供静态内容,从而为用户提供灵活性,易于交付和高可用性。 本教程包含有关使用 cURL,AWS CLI 以及 控制台的指示信息。 通过使用链接在本主题标题上方的指示信息之间进行切换,选择本教程的路径。
场景
本教程的方案将 Web 托管简化为其基本要素,以突出显示所涉及的步骤。 虽然并非每个配置选项都将包含在本教程中,但正确完成本教程会生成可通过 Web 访问的内容。
开始之前
确保您具有需要启动的内容:
- IBM Cloud Object Storage 的实例
- 固定形式的内容,如文本 (HTML 将是完美的) 和图像文件
检查您是否有权访问您将使用的 IBM Cloud Object Storage 实例或您将用于本教程的存储区的适当 许可权。
要将 IBM Cloud CLI 与本教程配合使用,您将需要 配置 Object Storage 插件 以指定要使用的服务实例以及要在其中创建新存储区的缺省区域。
创建为公共访问配置的存储区
为静态 Web 站点创建存储区将需要公共访问权。 有许多用于配置公共访问权的选项。 具体而言,使用 ObjectReader IAM 角色 将阻止列示存储区的内容,同时仍允许在因特网上查看静态内容。 如果要允许查看内容列表,请对存储区使用 ContentReader IAM 角色。
创建存储区
配置 CLI 插件后,请替换占位符内容,如示例命令中所示以创建存储区:
ibmcloud cos bucket-create --bucket <bucketname>
登录到控制台后,在创建 IBM Cloud Object Storage实例后,可以创建存储区。 单击标记为“创建存储区”的按钮,然后从选项中进行选择,如图 1 所示。 选择显示“定制存储区”的卡。
Web 站点中静态文件的容器将位于您可以命名的存储区中。 您创建的名称必须唯一,不应包含个人信息或标识信息,不能在行中有两个句点,点或连字符,并且必须以字母数字字符 (ASCII 字符集项 3-63) 开头和结尾。 请参阅图 2 以获取示例。
设置公共访问权
在本教程的所有场景中,您将希望使用 控制台中的 UI 来允许 公共访问 新 Web 站点。
创建存储区以托管静态 Web 站点内容时,可以选择在存储区创建过程中启用公共访问权。 有关启用对存储区的公共访问权的选项,请参阅图 3。 有关显示的“索引文档”和“错误文档”选项的说明,请在 配置 Web 站点的选项 部分中找到更多信息。 您可以先完成此步骤的基本配置,然后再将内容上载到存储区,如下一步中所示。
将内容上载到存储区
托管的静态 Web 站点文件的内容自然关注信息和媒体。 为静态 Web 站点创建内容的常用方法是 StaticGen中列出的开放式源代码生成器。 为了本教程的目的,我们只需要两个文件:
- 一个索引页面,通常以 HTML 编写,名为
index.html
,缺省情况下为站点访问者装入 - 也是 HTML 格式的错误页面,此处名为
error.html
; 通常,当访问者尝试访问不存在或没有公共访问权的对象时,将装入错误页面
其他文件 (例如图像,PDF 或视频) 也可以上载到您的存储区 (但本教程将仅关注最低需求集)。
为了本教程的目的,请将索引和错误处理的 HTML 页面放在本地目录中。 替换示例命令中显示的占位符内容以上载 HTML 文件:
ibmcloud cos object-put --bucket BUCKET_NAME --key KEY [--body FILE_PATH]
您可能已完成托管静态 Web 站点的基本配置。 一旦您对存储区进行了命名和配置,就可以在控制台中直接上载文件。 请注意,该步骤是可选的,如图 4 所示,并且可以在测试新的托管 Web 站点之前的任何时间点执行。
对于教程的其余部分,我们将假定索引页面的对象键为 index.html
,而错误文档的键为 error.html
,尽管可以将任何相应的文件名用于后缀或键。
为 Web 站点配置选项
有比本教程更多的选项可以描述,为了本教程的目的,我们只需要设置配置即可开始使用静态网站功能。
使用相应的配置信息创建 JSON 文件:
{
"ErrorDocument": {
"Key": "error.html"
},
"IndexDocument": {
"Suffix": "index.html"
}
}
替换示例命令中显示的占位符内容以配置 Web 站点:
ibmcloud cos bucket-website-put --bucket BUCKET_NAME --website-configuration file://<filename.json>
在创建存储区期间,您可能已完成此步骤,因为托管静态 Web 站点的基本配置将确定显示内容的时间和方式。 对于未能提供密钥或 Web 页面的 Web 站点访问者,将改为显示缺省文件。 当您的用户迂到错误时,错误页面的键将确定访问者将接收的内容。 将重复缺省页面和错误页面的配置选项以供参考。
测试和访问新 Web 站点
使用示例命令配置存储区以提供 HTTP 头后,测试新站点所需的所有操作都是访问该站点的 URL。 请注意显示的协议 (http),在将占位符替换为您先前在本教程中所作的选择之后:
http://<bucketname>.s3-web.<endpoint>/
通过成功测试新站点,您现在可以探索更多选项并添加更多内容。
后续步骤
可在 API 文档中找到 IBM Cloud Object Storage 托管静态 Web 站点的配置选项的详细描述。