柚子有一个需求: 官网图片加载太慢,因为一张图片内存高达10M,也是没谁了,领导让放到aws s3上使用cdn加速缓存图片 思路:首先在s3上创建一个存储桶newvisionholding,需要往里面存放img文件夹,然后用aws的cdn加速
一、创建s3存储桶
通过s3控制台创建存储桶:
权限状态栏 - 设置跨域和公开访问
下面介绍一种终端方法
S3(Simple Storage Service,简单存储服务),即可扩展的云存储,又称桶存储,S3是一种面向Internet的存储服务。
1.安装python3
2.安装AWS CLI
AWS Command Line Interface (AWS CLI) 是一个统一的工具,为与 Amazon Web Services 的所有部分进行交互提供了一致的界面。随附的用户指南中介绍了用于不同服务的 AWS CLI 命令,包括说明、语法和用法示例。
2-1 下载AWS CLI
下载 AWS CLI 版本 1 捆绑安装程序,使用 curl 命令下载。
对于最新版本的 AWS CLI, 请使用以下命令块:
curl "https://s3.amazonaws.com/aws-cli/awscli-bundle.zip" -o "awscli-bundle.zip"
2-2 从程序包中提取(解压缩)文件
如果没有 unzip,请使用 macOs 发行版的内置程序包管理器进行安装。
unzip awscli-bundle.zip
2-3 运行安装程序
安装程序在 AWS CLI 中安装 /usr/local/aws,并在 aws 文件夹中创建符号链接 /usr/local/bin。使用 -b 选项创建符号链接将免除在用户的 $PATH 变量中指定安装文件夹的需要。这应该能让所有用户通过在任何目录下输入 aws 来调用 AWS CLI。
默认情况下,安装脚本在系统默认版本的 Python 下运行。如果已安装 Python 的可选版本并希望使用该版本安装 AWS CLI,请使用该版本按 Python 可执行文件的绝对路径运行安装脚本,如下所示。
sudo /usr/bin/python3 awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws
3.使用aws cli 访问s3
上传文件:将本地文件夹nv_img下所有文件上传到 桶 newvisionholding的home_img文件夹目录下
cd 到本地文件夹内,:cd /Users/youzi/Desktop/nv_img
命名上传文件到指定路径下
aws s3 sync . s3://newvisionholding/home_img
4. Amazon S3通过网址访问图片
存储桶名称:newvisionholding
存储桶区域:香港是这个:ap-east-1
newvisionholding.s3.ap-east-1.amazonaws.com/home_img/1.…
存储桶策略
{
"Version": "2012-10-17",
"Id": "S3PolicyId1",
"Statement": [
{
"Sid": "statement1",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::newvisionholding/*"
}
]
}
跨域配置
[ { "AllowedHeaders": [ "*" ],
"AllowedMethods": [
"PUT",
"POST",
"DELETE"
],
"AllowedOrigins": [
"*"
],
"ExposeHeaders": [
"x-amz-server-side-encryption",
"x-amz-request-id",
"x-amz-id-2"
],
"MaxAgeSeconds": 3000
}
]
二、使用aws的CloudFront为s3存储文件创建cdn分发
1. 创建分配
2. 更新 图片访问网址