From 1fcb42f7b2d4e7567d118125ddee4952f37c5afe Mon Sep 17 00:00:00 2001 From: wonder Date: Sun, 10 May 2026 15:13:20 +0800 Subject: [PATCH] vault backup: 2026-05-10 15:13:20 --- FinalHomework/hzh_doc/log/阿里云 OSS.md | 95 +++++++++++++++++++++++++ FinalHomework/hzh_doc/执行计划.md | 8 +-- 2 files changed, 99 insertions(+), 4 deletions(-) create mode 100644 FinalHomework/hzh_doc/log/阿里云 OSS.md diff --git a/FinalHomework/hzh_doc/log/阿里云 OSS.md b/FinalHomework/hzh_doc/log/阿里云 OSS.md new file mode 100644 index 0000000..56039d6 --- /dev/null +++ b/FinalHomework/hzh_doc/log/阿里云 OSS.md @@ -0,0 +1,95 @@ +--- +tags: [全栈开发, 大作业, OSS, 阿里云] +create time: 2026-05-10 +--- + +# 阿里云 OSS 配置记录 + +## 平台注册 + +- **平台**: 阿里云 OSS(对象存储服务) +- **Bucket 名称**: hr-recruitment-hzh +- **区域 / Endpoint**: cn-beijing / oss-cn-beijing.aliyuncs.com +- **读写权限**: 私有(已关闭匿名访问和公开读) + +## 访问密钥(AccessKey) + +> [!danger] 安全提醒 +> - AccessKey Secret 是敏感凭据,**绝不提交到 Git** +> - 如果曾在聊天窗口或日志中泄露过,请立刻去 RAM 控制台 **Reset** +> - 已创建自定义最小权限策略,仅授权以下 4 个 Action(见下方) + +| 字段 | 值 | +| ---------------- | ------------------------------ | +| AccessKey ID | LTAI5t82VBCQSEyopZrR2S6w | +| AccessKey Secret | baHMcsfsp7jiURqqdGV3xePta5wGFu | + +#### 自定义最小权限策略 + +RAM 控制台 → 权限管理 → 创建自定义策略,只授予以下 **4 个 API Action**: + +```json +{ + "Version": "1", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "oss:PutObject", + "oss:GetObject", + "oss:DeleteObject", + "oss:ListObjects" + ], + "Resource": [ + "acs:oss:*:*:hr-recruitment-hzh/*" + ] + } + ] +} +``` + +> - `oss:PutObject` — 前端直传简历文件 +> - `oss:GetObject` — 下载/预览文件 +> - `oss:DeleteObject` — 清理过期文件 +> - `oss:ListObjects` — 列出目录内容(可选) +> - `Resource` 精确限定在 `hr-recruitment-hzh` Bucket,不触及任何其他资源。 + +| 字段 | 值 | +| ---------------- | ------------------------------ | +| AccessKey ID | LTAI5t82VBCQSEyopZrR2S6w | +| AccessKey Secret | baHMcsfsp7jiURqqdGV3xePta5wGFu | + +## 项目中的使用位置 + +根据架构设计,OSS key **仅存在于 Logic gRPC 服务** 中,Web 网关层不接触密钥: + +``` +logic-grpc-service/.env ← 实际密钥(不进 Git) +logic-grpc-service/.env.example ← 模板文件(进 Git) +logic-grpc-service/internal/oss/client.go ← SDK 初始化读取 .env +logic-grpc-service/internal/oss/signer.go ← 生成签名 URL +``` + +### .env.example 模板内容 + +```bash +# logic-grpc-service/.env.example +OSS_ACCESS_KEY_ID=your-access-key-id +OSS_ACCESS_KEY_SECRET=your-access-key-secret +OSS_ENDPOINT=oss-cn-hangzhou.aliyuncs.com +OSS_BUCKET_NAME=your-bucket-name +``` + +### 对应 .gitignore 配置 + +```gitignore +# logic-grpc-service/.gitignore +.env +``` + +## 使用流程回顾 + +1. 后端通过 AccessKey 初始化 OSS Client +2. 前端请求上传简历时,Logic 服务调用 `GenOssSign` → 生成临时签名 URL(通常 30min 过期) +3. 前端拿着签名 URL 直接向 OSS PUT 文件,**服务端不缓存任何字节** +4. 上传完成后前端传 fileKey → Logic 将 fileKey 写入 MySQL 简历表 diff --git a/FinalHomework/hzh_doc/执行计划.md b/FinalHomework/hzh_doc/执行计划.md index 9419fd1..f1ab5e7 100644 --- a/FinalHomework/hzh_doc/执行计划.md +++ b/FinalHomework/hzh_doc/执行计划.md @@ -57,10 +57,10 @@ gantt ## 二、阶段一:环境与基础建设 > [!note] 进度追踪 -> - [ ] T1.1 Go 1.21+ 安装并验证 -> - [ ] T1.2 Node.js 18+ / npm 安装并验证 -> - [ ] T1.3 MySQL 8.0+ 安装 + 数据库实例创建 -> - [ ] T1.4 OSS 平台注册 + 私有 Bucket 创建 +> - [x] T1.1 Go 1.21+ 安装并验证 +> - [x] T1.2 Node.js 18+ / npm 安装并验证 +> - [x] T1.3 MySQL 8.0+ 安装 + 数据库实例创建 +> - [x] T1.4 OSS 平台注册 + 私有 Bucket 创建 > - [ ] T1.5 Git 仓库初始化 + 目录结构建立 > - [ ] T1.6 `.gitignore` + `.env.example` 初始化