vault backup: 2026-05-10 15:13:20

This commit is contained in:
2026-05-10 15:13:20 +08:00
parent 24c1bcd477
commit 1fcb42f7b2
2 changed files with 99 additions and 4 deletions
@@ -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 简历表
+4 -4
View File
@@ -57,10 +57,10 @@ gantt
## 二、阶段一:环境与基础建设 ## 二、阶段一:环境与基础建设
> [!note] 进度追踪 > [!note] 进度追踪
> - [ ] T1.1 Go 1.21+ 安装并验证 > - [x] T1.1 Go 1.21+ 安装并验证
> - [ ] T1.2 Node.js 18+ / npm 安装并验证 > - [x] T1.2 Node.js 18+ / npm 安装并验证
> - [ ] T1.3 MySQL 8.0+ 安装 + 数据库实例创建 > - [x] T1.3 MySQL 8.0+ 安装 + 数据库实例创建
> - [ ] T1.4 OSS 平台注册 + 私有 Bucket 创建 > - [x] T1.4 OSS 平台注册 + 私有 Bucket 创建
> - [ ] T1.5 Git 仓库初始化 + 目录结构建立 > - [ ] T1.5 Git 仓库初始化 + 目录结构建立
> - [ ] T1.6 `.gitignore` + `.env.example` 初始化 > - [ ] T1.6 `.gitignore` + `.env.example` 初始化