avatar
文章
61
标签
74
分类
27
前端
  • HTML
  • CSS
  • Vue教程
  • Vue项目
服务器
  • Linux
  • Nginx
  • AWS
归档
标签
分类
关于
Anthony的技术博客Aliyun
搜索
前端
  • HTML
  • CSS
  • Vue教程
  • Vue项目
服务器
  • Linux
  • Nginx
  • AWS
归档
标签
分类
关于

Aliyun

发表于2022-11-19|更新于2022-12-03|Cloud
|总字数:21|阅读时长:1分钟|浏览量:

服务器硬盘扩容

在线硬盘扩容

阿里云OSS+AWS Cloudfront

CloudFront加速Vercel

阿里云云服务器硬盘
cover of previous post
上一篇
虚拟机
VirtualBox增强功能Centos8123456789# 需要安装一定的依赖,例如:make gcc perlsudo yum install gcc perl make tar bzip2 elfutils-libelf-devel#同时安装的kernel-devel版本要和内核版本一致,安装对应版本sudo yum install -y "kernel-devel-uname-r == $(uname -r)"# 或者通过DNF安装所有:dnf install tar bzip2 kernel-devel-$(uname -r) kernel-headers perl gcc make elfutils-libelf-devel
cover of next post
下一篇
AWS
AWS基本教程场景是:在把22端口关闭了,无法再连上服务器的情况 解决办法:关闭服务器,点击操作->实例设置->编辑用户数据 1234567#!/bin/bash# 允许 SSH 端口iptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPTiptables -Fiptables -A INPUT -p tcp --dport 22 -j ACCEPT 再启动服务器 AWS升级配置1.先停止实例,不是终止实例 2.修改实例类型 重启公网IP可能会改变 服务器局域网互通需要把局域网 想要互通的服务器,加入一个公共的的默认安全组 选择default安全组 要看服务器部署在哪里 JavaSDK上传图片到S3123456789101112131415161718192021222324252627282930313233343536@RestController@Slf4j@Api(tags = "上传接口")public class UploadController { @Value("${S3.accessKey}") String accessKey; @Value("${S3.secretKey}") String secretKey; @Value("${S3.endPoint}") String endPoint; @Value("${S3.bucketName}") String bucketName; @PostMapping("/upload") @ApiOperation("上传") @NotNeedAuth public Response<String> upload(@RequestParam("file") MultipartFile file) { String originalFilename = file.getOriginalFilename(); if (!Constant.PHOTO_LIST.contains(originalFilename.substring(originalFilename.lastIndexOf(".") + 1))) { return Response.fail(CodeConstant.CODE_095); } String newImageName = ThreadLocalRandom.current().nextInt(10000) + System.currentTimeMillis() + originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase(); String fileName = "lxdt/dt/" + Constant.DIRECTORY_TIME_FORMAT.format(LocalDateTime.now(Constant.TIME_ZONE)) + newImageName; try { S3Util.uploadFileByFile(accessKey, secretKey, endPoint, bucketName, fileName, file); } catch (Exception e) { log.error("上传失败", e); return Response.error(""); } return Response.successData(fileName); }} 12345678910111213141516public class S3Util { /** * 图片上传 */ public static void uploadFileByFile(String accessKey, String secretKey, String endPoint, String bucketName, String folderName, MultipartFile file) throws IOException { ClientConfiguration clientConfig = new ClientConfiguration(); clientConfig.setProtocol(Protocol.HTTPS); AmazonS3 amazonS3 = AmazonS3Client.builder().withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, Region.getRegion(Regions.AP_SOUTHEAST_1).getName())) .withClientConfiguration(clientConfig).withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(accessKey, secretKey))) .disableChunkedEncoding().withPathStyleAccessEnabled(true).withForceGlobalBucketAccessEnabled(true).enablePathStyleAccess().build(); ObjectMetadata objectMetadata = new ObjectMetadata(); objectMetadata.setContentType(file.getContentType()); objectMetadata.setContentLength(file.getSize()); amazonS3.putObject(new PutObjectRequest(bucketName, folderName, file.getInputStream(), objectMetadata).withCannedAcl(CannedAccessControlList.PublicRead)); }} S3桶策略公开访问桶策略 123456789101112{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::your-bucket-name/*" } ]} 印象中有遇到这种情况: ​ 第一次操作桶的时候,桶里面的文件是能正常共享出来的 ​ 很久之后没有操作了,再上传一个新文件,上传的这个文件就不能共享了 第二次出现这样情况的时候,我文件的url搞错了,是可以正常共享的 PicGO+S3创建存储桶红框里不要勾选 创建文件夹,设置公开 开启静态托管 新建IAM用户访问创建IAM页面 创建使用者 创建使用者详情 创建使用者权限,点击下一步,然后就能看到key和密钥了 PicGO配置PicGO软件许要下再S3插件,然后再配置文件里粘贴这个 1234567"aws-s3": { "accessKeyID": "AKIA2Q6ZSIPP7MKZOFHR", "secretAccessKey": "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", "bucketName": "mmzcg.com", "uploadPath": "blog/{year}/{fullName}", "acl": "public-read"} 参考S3教程 PicGoS3教程 CloudFront加速Vercel1.找到vercel自动分配的域名 2.aws 创建分配 3.选择源 不要选择源,输入vercel分配的域名 4.选择全部https,其它可以默认 5.选择证书 备用域名:比如vercel默认分配的是xxx.vercel.app你想加速的域名是 abc.blog,备用域名就填abc.blog 自定义SSL证书:用aws自带的证书申请工具 点击保存,回到CloudFront首页 6.cname 看上次修改时间这一列,如果显示的时间,就表示刚才的配置已经生效了,如果显示在部署中…就等一会 CloudFront这一列会分配一个域名,在域名解析那里Cname指向这个域名就可以了 AWS S3和Hexo1.安装插件 12# 装置npm install hexo-deployer-aws-s3 --save-dev 2.改_config.yml 12345678deploy:# - type: 'git'# repo: [email protected]:aaaaaaanthony/aaaaaaanthony.github.io.git# branch: master type: 'aws-s3' # 写死 region: ap-east-1 # 区域名 bucket: mmzcg.com # 桶名 如果要部署多个地方,每个仓库的type前面要加一个- 如果只有一个,就只用type开头就行 3.执行环境变量 123export AWS_ACCESS_KEY_ID=AKIA2Q6ZSIPP7MKZOFHRexport AWS_SECRET_ACCESS_KEY=ZifJfUmVVGMq37hd8Itozp4fws5O97dVlwgMgtCYsource /etc/profile 4.部署 1234hexo cleanhexo algolihexo d -g 发现报错,The bucket does not allow ACLs,还需要在存储中开启 ACLs 接下来要关闭「阻止共有访问操作」 部署成功后,开启静态网站托管功能 RDS创建RDS选择mysql社区版本 AWS的RDS开启慢查询日志到cloudwatch中 快照导出到S3 参考文档 接下来的页面是需要的设置 导出标识符,就是导出任务的名字 导出的数据,这里测试就简单点,导出全部表,要是选部分表,文档里有导出规则 S3 目标, 选一个存储桶 接下来的两个是难点,IAM角色,和加密 先看加密,先创建ARN,找到配置的选项卡 点击下面的链接 在客户管理的秘钥,创建一个秘钥, 客户管理的密钥和AWS托管的密钥是有区别的,要选对 创建完之后,再回到 密钥列表的页面,点密钥ID,进入到详情页 复制ARN刚刚才导出的页面,角色权限什么的,各种尝试下就可以了 front清空缓存API12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import boto3import datetimedef create_invalidation(distribution_id, paths): # 创建一个CloudFront客户端并提供凭证 client = boto3.client('cloudfront',aws_access_key_id='AKIA2UC26S7767GSGKJQ',aws_secret_access_key='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') # 创建一个唯一的无效请求ID caller_reference = str(datetime.datetime.now()) # 格式化路径 items = paths if isinstance(paths, list) else [paths] # 构建无效请求 invalidation_batch = { 'Paths': { 'Quantity': len(items), 'Items': items }, 'CallerReference': caller_reference } # 创建无效请求 response = client.create_invalidation( DistributionId=distribution_id, InvalidationBatch=invalidation_batch ) return response# distribution_id 列表,包含ID、说明和类型distribution_info = [ ["EX123AFBG", "生产环境", "生产", "baidu.com"],]# 要使失效的路径paths_to_invalidate = ['/*']# 循环遍历每个distribution_idfor info in distribution_info: distribution_id = info[0] print(f"Creating invalidation for Distribution ID: {distribution_id}, Description: {info[1]}, Type: {info[2]}") response = create_invalidation(distribution_id, paths_to_invalidate) print(response) print("================")print("刷新完成")
相关推荐
cover
2022-11-19
AWS
AWS基本教程场景是:在把22端口关闭了,无法再连上服务器的情况 解决办法:关闭服务器,点击操作->实例设置->编辑用户数据 1234567#!/bin/bash# 允许 SSH 端口iptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPTiptables -Fiptables -A INPUT -p tcp --dport 22 -j ACCEPT 再启动服务器 AWS升级配置1.先停止实例,不是终止实例 2.修改实例类型 重启公网IP可能会改变 服务器局域网互通需要把局域网 想要互通的服务器,加入一个公共的的默认安全组 选择default安全组 要看服务器部署在哪里 JavaSDK上传图片到S3123456789101112131415161718192021222324252627282930313233343536@RestController@Slf4j@Api(tags = "上传接口")public class UploadController { @Value("${S3.accessKey}") String accessKey; @Value("${S3.secretKey}") String secretKey; @Value("${S3.endPoint}") String endPoint; @Value("${S3.bucketName}") String bucketName; @PostMapping("/upload") @ApiOperation("上传") @NotNeedAuth public Response<String> upload(@RequestParam("file") MultipartFile file) { String originalFilename = file.getOriginalFilename(); if (!Constant.PHOTO_LIST.contains(originalFilename.substring(originalFilename.lastIndexOf(".") + 1))) { return Response.fail(CodeConstant.CODE_095); } String newImageName = ThreadLocalRandom.current().nextInt(10000) + System.currentTimeMillis() + originalFilename.substring(originalFilename.lastIndexOf(".")).toLowerCase(); String fileName = "lxdt/dt/" + Constant.DIRECTORY_TIME_FORMAT.format(LocalDateTime.now(Constant.TIME_ZONE)) + newImageName; try { S3Util.uploadFileByFile(accessKey, secretKey, endPoint, bucketName, fileName, file); } catch (Exception e) { log.error("上传失败", e); return Response.error(""); } return Response.successData(fileName); }} 12345678910111213141516public class S3Util { /** * 图片上传 */ public static void uploadFileByFile(String accessKey, String secretKey, String endPoint, String bucketName, String folderName, MultipartFile file) throws IOException { ClientConfiguration clientConfig = new ClientConfiguration(); clientConfig.setProtocol(Protocol.HTTPS); AmazonS3 amazonS3 = AmazonS3Client.builder().withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(endPoint, Region.getRegion(Regions.AP_SOUTHEAST_1).getName())) .withClientConfiguration(clientConfig).withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(accessKey, secretKey))) .disableChunkedEncoding().withPathStyleAccessEnabled(true).withForceGlobalBucketAccessEnabled(true).enablePathStyleAccess().build(); ObjectMetadata objectMetadata = new ObjectMetadata(); objectMetadata.setContentType(file.getContentType()); objectMetadata.setContentLength(file.getSize()); amazonS3.putObject(new PutObjectRequest(bucketName, folderName, file.getInputStream(), objectMetadata).withCannedAcl(CannedAccessControlList.PublicRead)); }} S3桶策略公开访问桶策略 123456789101112{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::your-bucket-name/*" } ]} 印象中有遇到这种情况: ​ 第一次操作桶的时候,桶里面的文件是能正常共享出来的 ​ 很久之后没有操作了,再上传一个新文件,上传的这个文件就不能共享了 第二次出现这样情况的时候,我文件的url搞错了,是可以正常共享的 PicGO+S3创建存储桶红框里不要勾选 创建文件夹,设置公开 开启静态托管 新建IAM用户访问创建IAM页面 创建使用者 创建使用者详情 创建使用者权限,点击下一步,然后就能看到key和密钥了 PicGO配置PicGO软件许要下再S3插件,然后再配置文件里粘贴这个 1234567"aws-s3": { "accessKeyID": "AKIA2Q6ZSIPP7MKZOFHR", "secretAccessKey": "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", "bucketName": "mmzcg.com", "uploadPath": "blog/{year}/{fullName}", "acl": "public-read"} 参考S3教程 PicGoS3教程 CloudFront加速Vercel1.找到vercel自动分配的域名 2.aws 创建分配 3.选择源 不要选择源,输入vercel分配的域名 4.选择全部https,其它可以默认 5.选择证书 备用域名:比如vercel默认分配的是xxx.vercel.app你想加速的域名是 abc.blog,备用域名就填abc.blog 自定义SSL证书:用aws自带的证书申请工具 点击保存,回到CloudFront首页 6.cname 看上次修改时间这一列,如果显示的时间,就表示刚才的配置已经生效了,如果显示在部署中…就等一会 CloudFront这一列会分配一个域名,在域名解析那里Cname指向这个域名就可以了 AWS S3和Hexo1.安装插件 12# 装置npm install hexo-deployer-aws-s3 --save-dev 2.改_config.yml 12345678deploy:# - type: 'git'# repo: [email protected]:aaaaaaanthony/aaaaaaanthony.github.io.git# branch: master type: 'aws-s3' # 写死 region: ap-east-1 # 区域名 bucket: mmzcg.com # 桶名 如果要部署多个地方,每个仓库的type前面要加一个- 如果只有一个,就只用type开头就行 3.执行环境变量 123export AWS_ACCESS_KEY_ID=AKIA2Q6ZSIPP7MKZOFHRexport AWS_SECRET_ACCESS_KEY=ZifJfUmVVGMq37hd8Itozp4fws5O97dVlwgMgtCYsource /etc/profile 4.部署 1234hexo cleanhexo algolihexo d -g 发现报错,The bucket does not allow ACLs,还需要在存储中开启 ACLs 接下来要关闭「阻止共有访问操作」 部署成功后,开启静态网站托管功能 RDS创建RDS选择mysql社区版本 AWS的RDS开启慢查询日志到cloudwatch中 快照导出到S3 参考文档 接下来的页面是需要的设置 导出标识符,就是导出任务的名字 导出的数据,这里测试就简单点,导出全部表,要是选部分表,文档里有导出规则 S3 目标, 选一个存储桶 接下来的两个是难点,IAM角色,和加密 先看加密,先创建ARN,找到配置的选项卡 点击下面的链接 在客户管理的秘钥,创建一个秘钥, 客户管理的密钥和AWS托管的密钥是有区别的,要选对 创建完之后,再回到 密钥列表的页面,点密钥ID,进入到详情页 复制ARN刚刚才导出的页面,角色权限什么的,各种尝试下就可以了 front清空缓存API12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import boto3import datetimedef create_invalidation(distribution_id, paths): # 创建一个CloudFront客户端并提供凭证 client = boto3.client('cloudfront',aws_access_key_id='AKIA2UC26S7767GSGKJQ',aws_secret_access_key='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') # 创建一个唯一的无效请求ID caller_reference = str(datetime.datetime.now()) # 格式化路径 items = paths if isinstance(paths, list) else [paths] # 构建无效请求 invalidation_batch = { 'Paths': { 'Quantity': len(items), 'Items': items }, 'CallerReference': caller_reference } # 创建无效请求 response = client.create_invalidation( DistributionId=distribution_id, InvalidationBatch=invalidation_batch ) return response# distribution_id 列表,包含ID、说明和类型distribution_info = [ ["EX123AFBG", "生产环境", "生产", "baidu.com"],]# 要使失效的路径paths_to_invalidate = ['/*']# 循环遍历每个distribution_idfor info in distribution_info: distribution_id = info[0] print(f"Creating invalidation for Distribution ID: {distribution_id}, Description: {info[1]}, Type: {info[2]}") response = create_invalidation(distribution_id, paths_to_invalidate) print(response) print("================")print("刷新完成")

评论
avatar
Anthony
anthony的技术博客,记录开发,运维的笔记
文章
61
标签
74
分类
27
目录
  1. 1. 服务器硬盘扩容
  2. 2. 阿里云OSS+AWS Cloudfront
最新文章
Mac Apple芯片安装Win11
Mac Apple芯片安装Win112025-05-06
ESM
ESM2025-05-05
Flarum
Flarum2025-05-04
Flutter
Flutter2024-07-27
Pinia
Pinia2024-07-07
©2016 - 2025 By Anthony
框架 Hexo 7.3.0|主题 Butterfly 5.3.5
搜索
数据加载中