AWS 的S3 与 CloudFront 配合纪要

大体要点,必参考

1、S3 可以使用aws的sdk集合包,也可以使用S3专用的包:@aws-sdk/client-s3;

2、通过sdk上传的文件,不带自动设置 Content-Type 的逻辑(同样的情况发生在阿里云),所以这里的设置应该属于前端web代码。sdk就不带了,所以要自备mime表;

3、CloudFront 会根据源站的 Content-Type 自动应用压缩算法;

4、可以启用Content-Type的类型参考链接:

提供压缩文件 - Amazon CloudFront

但是请注意!!! CF 的自动压缩,测试有大小限制。大约大于6M的文件就要注意是否被CF原样输出了(因为他们认为过大的文件会导致计算资源消耗),网络消耗惊人。

5、CloudFront的CDN缓存策略,会跟阿里云类似,会根据源站的 Cache-Control 来。当然也可以用他们的TTL设定。不过源站的缓存策略完备的话,这里肯定用不着;

6、CloudFront有一个名词叫缓存键,cache key,其实就是定位唯一一条资源的意思。为什么不是直接用文件名呢,是因为CDN还可以根据上发的header或者 cookies 或query_string 做key来映射缓存。比如,假设一个文件 a.txt,设定 header t 为缓存,那此cache的key就可能类似 a.txt_header_t_xx 来缓存所有t = xx 的时候,a.txt。

注意!!!此处有一个巨大的差异,阿里云在默认情况下,会对 query_string 做key。所以客户端的 update 文件夹下的文件,客户端之前在国内是用类似 xxx.game.net/5/update/update.txt?t=135456614 的方法强制CDN回源失效的。

但是!AWS在设置CloudFront 回源S3时,默认的策略,是只把url当key的!由此客户端的取巧全部失效。所以只能老老实实的设置 cache-control。

7、由于6的失误引起的需要no-cache的CDN节点资源已经缓存在外,就需要清空CDN节点了。AWS没有阿里云类似的图形操作界面直接刷新,需要用他们的命令行客户端。

文档:安装或更新最新版本的 AWS CLI - AWS Command Line Interface

步骤:

安装:

$ curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install

配置config(生成在 $HOME/.aws/credentials):

$ aws configure

AWS Access Key ID [None]: XXXXXX

AWS Secret Access Key [None]: XXXXX

Default region name [None]:

Default output format [None]:

使其失效:

aws cloudfront create-invalidation --distribution-id --paths "/*"

具体的部署步骤

1、在对应的区域,创建对应的S3的bucket。注意不要开放公有访问(省的被偷流量,CF免费,这个要钱的!)

其他保持默认,创建即可。

2、创建一个CF分发

选择S3,不需要自己输入(走外网端口会起反效果):

选填名字

选择Legacy access,然后创建一个OAI,并对这个bucket应用更新(不然就要去S3修改了,很难受)

如果这个时候回到S3,就可以看到 bucket 已经生效私有访问策略:

其他不用动,选择Cache策略:

这个策略是AWS对S3的建议,其实很基础,如下:

这个策略提到了上面的很多要素。

CF有每个用户1个月1TB免费流量的 Free Tier,薅羊毛!

然后这里要填入自己的CNAME(也就是用户直接用到的域名了)

注意代理https需要选择对应的证书。

创建好之后,在DNSPod或者其他DNS运营商,解析一下CF的CNAME即可:

至此可以愉快的访问了。在海外AWS的素质一流。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值