【亚马逊云科技】通过高性能低延迟对象存储 S3 实现网站资源托管

存储
云计算
re:Invent
Amazon Simple Storage Service (S3)
0
0
### 前言 ![image.png](https://dev-media.amazoncloud.cn/20c6ae360a6f49d0b951a51fa30555ce_image.png "image.png") 在刚刚结束的亚马逊云科技年度盛会 re:Invent 上,S3(Simple Storage Service)存储桶再次成为了热点话题。作为亚马逊云科技的核心存储服务之一,S3 存储桶在[云计算](https://so.csdn.net/so/search?q=%E4%BA%91%E8%AE%A1%E7%AE%97&spm=1001.2101.3001.7020?trk=cndc-detail)领域扮演着至关重要的角色。它不仅提供了可靠的存储和访问机制,还支持广泛的配置选项和高级功能。在本文中,我们将深入探讨 S3 存储桶的优势、功能和最佳实践,帮助您更好地利用这一强大的云存储服务。 ### 1 S3 介绍 S3 是一种对象存储服务,提供行业领先的可扩展性、数据可用性、安全性和性能。各种规模和行业的客户都可以使用 [Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail) 存储和保护任意数量的数据,用于数据湖、网站、移动应用程序、备份和恢复、归档、企业应用程序、IoT 设备和大数据分析。[Amazon S3](https://aws.amazon.com/cn/s3/?trk=cndc-detail) 提供了管理功能,使您可以优化、组织和配置对数据的访问,以满足您的特定业务、组织和合规性要求。 #### 1.1 优点 ![image.png](https://dev-media.amazoncloud.cn/a0c38c82ce574b9daad3adf06aef8630_image.png "image.png") ### 2 使用步骤 #### 2.1 注册账户 打开网页, https://portal.aws.amazon.com/billing/signup?trk=cndc-detail ,进行登录,没有账号先进行注册 ![image.png](https://dev-media.amazoncloud.cn/4602ff3cbe0a4feebff1742ef138886a_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/471f76e5702447e8982c66ff0589d403_image.png "image.png") #### 2.2 创建存储桶 ##### 2.2.1 打开控制台 打开访问控制台,在左侧导航窗格中,选择桶->选择创建桶。 ![image.png](https://dev-media.amazoncloud.cn/53f5990c382544b6a76c94dcf1b34896_image.png "image.png") ##### 2.2.2 新建存储桶 ![image.png](https://dev-media.amazoncloud.cn/656191cdead443ef943e2eccb9d90a3d_image.png "image.png") 桶名称必须满足以下要求: - 在分区中是唯一的。分区是一组区域。亚马逊云科技目前有三个分区:亚马逊云科技(标准区域)、amazon-cn(中国区域)和 aws-us-gov (Amazon GovCloud (US) Regions - 长度必须介于 3 到 63 个字符之间。 - 只能由小写字母、数字、句点(.)和连字符(-)组成。为了获得最佳兼容性,我们建议您避免在存储桶名称中使用句点(.),但仅用于静态网站托管的存储桶除外。 - 以字母或数字开头和结尾。 创建桶后,便无法再更改其名称。 - 避免在存储桶名称中包含敏感信息,如账号。桶名称会显示在指向桶中的对象的 URL 中。 #### 2.3 上传资源 创建存储桶成功后,可对该存储桶进行资源上传 ![image.png](https://dev-media.amazoncloud.cn/07779d5795084162abc06230ebd07835_image.png "image.png") 我们这里先将网站静态资源包下载下来 ![image.png](https://dev-media.amazoncloud.cn/9ce97f148fb54770b1dadfb1bf3cfa24_image.png "image.png") 在上传页面中,进行资源上传 ![image.png](https://dev-media.amazoncloud.cn/5fc227aa70d1454f9484288cf045d0eb_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/b11c85177be24ba3a7c778a25ab67322_image.png "image.png") 点击上传,等待上传结束 ![image.png](https://dev-media.amazoncloud.cn/19b9190f0605489292a622bfd69e8bde_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/9f8b796d2667498aa22e1bf7e7ab6ab7_image.png "image.png") 上传成功 ![image.png](https://dev-media.amazoncloud.cn/d4025f2dd92349a9b7df054a547cacf7_image.png "image.png") #### 2.4 资源对象操作 上传到存储桶后我们可以对桶里的资源进行下载、删除等,由于没有解压操作,我们将资源下载下来通过本地解压后重新上传 ##### 2.4.1 下载操作 ###### 2.4.1.1 对象下载 通过网页按钮,点击下载即可,另外一种方式实通过 url 进行下载 ![image.png](https://dev-media.amazoncloud.cn/3a06821f38124f1c8eda63fc70d4a6a5_image.png "image.png") ###### 2.4.1.2 通过URL下载 ![image.png](https://dev-media.amazoncloud.cn/deddef3d7025400b8eabd88960eea396_image.png "image.png") ### 3 网站托管图像资源访问 #### 3.1 配置静态资源 将网站的静态资源上传后,我们需要通过托管的形式将网站的资源显示出来 ##### 3.1.1 启用静态网站托管 选择要操作的存储桶,例如我的:dmws3storage ![image.png](https://dev-media.amazoncloud.cn/9435f7d7ac394b2bb422f6eb85e476ea_image.png "image.png") 点击属性,下滑将【静态网站托管】打开 ![image.png](https://dev-media.amazoncloud.cn/52d8c97113134d849dc1a8476a2ad9b0_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/83fa0bdff85c4e228ceb19a873fe31c4_image.png "image.png") 改写配置并保存 ![image.png](https://dev-media.amazoncloud.cn/0bfb594c87a24aabab6375914f8d5b90_image.png "image.png") ##### 3.1.2 开放公有访问 选择操作的存储桶 ![image.png](https://dev-media.amazoncloud.cn/55f6a1fae87e4ef1a1797082ddebf070_image.png "image.png") 点击权限 ![image.png](https://dev-media.amazoncloud.cn/2f1b8beacaf2477db16bd2a9ec1b2802_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/8255e7f9d87d4899a40fbe625b714552_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/4ba043a78d2b47d89d2327716ea2717e_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/a58e3b17afb74c8bb9de9a9ed154831e_image.png "image.png") ##### 3.1.3 添加桶策略 选择操作的存储桶 ![image.png](https://dev-media.amazoncloud.cn/55dd52b8d53c4082bf128ef3d29a5455_image.png "image.png") 点击权限 ![image.png](https://dev-media.amazoncloud.cn/b5bb46f0e57948169f799cc4b16201ad_image.png "image.png") 点击桶策略 ![image.png](https://dev-media.amazoncloud.cn/b2f5a7a30b87449ca49f066203fc32b9_image.png "image.png") 策略权限: > 授予对网站的公有读取访问权限,授予公有读取访问权限时,Internet 上的任何人都可以访问! ```js { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::Bucket-Name/*" ] } ] } ``` 注意⚠️:下方策略权限需要将 Resource 中的 Bucket-Name,改为自己的存储桶名称,否则保存会提示 Policy has invalid resource 的错误 > 例如:我的存储桶名【dmws3storage】 所以策略为: ```js { "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::dmws3storage/*" ] } ] } ``` ![image.png](https://dev-media.amazoncloud.cn/868a5b76018042eb94e0c603f60a7cea_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/35b51abb4bc84311b60d4bbc6b760cdd_image.png "image.png") ![image.png](https://dev-media.amazoncloud.cn/b20d37b79b934fbc9200878b830e8b36_image.png "image.png") #### 3.2 获得桶存储公网地址 刷新该桶权限页面,可以获得公网访问存储桶的地址,接下来我们通过存储桶进行网页托管 ![image.png](https://dev-media.amazoncloud.cn/961338d8acf648e9882c4ad4b463ea03_image.png "image.png") ### 4 访问静态资源索引 访问公有地址,发现报错404 ![image.png](https://dev-media.amazoncloud.cn/33f75a5988234d94b992e9795874a867_image.png "image.png") 这是因为刚刚默认设置打开的是 index.html 页面 ![image.png](https://dev-media.amazoncloud.cn/10eaba9358604f8f94169a7c75e6f9ff_image.png "image.png") 如果需要访问单张图片,例如:buy_shop.png 只需要将 URL 进行拼接即可,即:http://dmws3storage.s3-website-ap-southeast-1.amazonaws.com/buy_shop.png?trk=cndc-detail 效果如下: ![image.png](https://dev-media.amazoncloud.cn/b5d37e6eeaa04c679d394f3092ba058d_image.png "image.png") ### 5 修改静态资源 URL ```js <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>HTML图片示例</title> </head> <body> <!-- 使用img元素插入图片 --> <img src="path/to/your/buy_shop.png" alt="图片"> </body> </html> ``` 我们可以将网站上的本地资源进行替换,只需要在网站图片标签中将本地路径替换为公网地址即可,例如: ```js <img src="http://dmws3storage.s3-website-ap-southeast-1.amazonaws.com/buy_shop.png" alt="图片"> ``` 如果还需要将静态页面 html 进行托管只需要将对应的 html 页面进行上传即可,例如:index.html ![image.png](https://dev-media.amazoncloud.cn/83c34ec2a6aa41269debe6857212cec9_image.png "image.png") ### 6 上传资源完成托管 将修改好的静态页面打包上传至存储桶 ![image.png](https://dev-media.amazoncloud.cn/c57d9ca974e34d958b47bbd58e62b468_image.png "image.png") 上传至存储桶后,通过访问存储桶的公网地址,即可得到托管页面 ![image.png](https://dev-media.amazoncloud.cn/5ffca05bed274aaca03904f2c5258e52_image.png "image.png") ### 7 产品测评体验 亚马逊云科技的 S3(Simple Storage Service)作为一种高性能低延迟的[对象存储服务](https://so.csdn.net/so/search?q=%E5%AF%B9%E8%B1%A1%E5%AD%98%E5%82%A8%E6%9C%8D%E5%8A%A1&spm=1001.2101.3001.7020?trk=cndc-detail),为网站资源托管提供了卓越的解决方案。在这篇产品体验测评中,深入探讨 S3 的关键特性,并评估其在网站资源托管方面的性能、可靠性和便捷性,主要体现在以下几点: 1、在测试中,S3 展现出极高的读写速度,使得网站资源的加载速度得到显著提升。通过全球分布的亚马逊云科技边缘节点,用户可以快速访问他们所需的内容,可以根据服务需要选择就近存储地址,降低资源访问延迟。 2、在测试中,S3 提供了出色的可扩展性,用户可以轻松地扩展存储空间,而无需担心性能下降。 3、通过存储桶策略,用户可以精确控制对其存储桶和其中对象的访问权限。此外,S3 还提供了加密选项,确保存储在其中的数据得到充分的保护。 4、S3 的按需定价模型和灵活付费选项使其成为一个高度成本效益的选择。用户只需为他们实际使用的存储和数据传输付费,而无需支付固定的预付费用。这种灵活性有助于企业优化其 IT 开支,并确保他们只支付实际使用的资源。
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭