阿里云 OSS 配置
创建私有桶、最小范围访问账号、CORS,并完成第一次保存验证
1. 准备账号和私有桶
登录阿里云控制台,开通 OSS。创建用于自己密码库的 Bucket,选择合适地域,保持私有读写。记录准确的 Bucket 名称与地域,例如 oss-cn-beijing
不要使用本官网图片下载的资源桶来存个人密码,也不要使用公共演示环境保存真实账号
2. 创建专用访问凭据
在 RAM 中创建专用子用户,启用程序访问并保存 AccessKey ID 与 AccessKey Secret。只授予专用密码桶必要对象范围的权限,避免使用主账号 AccessKey 或全账号管理权限
当前密码与设置主要使用 password-xl/store.json、password-xl/setting.json。客户端会读写对象、查询 ETag,并在相应清理操作中删除对象,因此需要 GET、PUT、HEAD、DELETE 对应能力
下面是对象前缀限定的策略示例;将 YOUR_PRIVATE_BUCKET 替换为自己的专用桶,按实际云策略校验结果保存:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": ["oss:GetObject", "oss:PutObject", "oss:DeleteObject"],
"Resource": ["acs:oss:*:*:YOUR_PRIVATE_BUCKET/password-xl/*"]
}
]
}HEAD 对象读取通常由 GetObject 权限覆盖。若控制台或 SDK 具体操作报告缺少额外权限,先依据失败请求定位所需动作,不直接扩展为全桶或全账号管理权限
3. 配置跨域 CORS
在 Bucket 权限管理的跨域规则中允许实际使用的 Web 来源:
| 字段 | 示例 |
|---|---|
| 来源 | https://password-xl.cn,以及自己的前端域名 |
| 方法 | GET、PUT、HEAD、DELETE |
| 允许请求头 | *,或经实际请求验证的签名请求头集合 |
| 暴露响应头 | ETag |
| 缓存预检时间 | 可按控制台默认或适当短时配置 |
来源要包含协议和端口,不包含路径。开发环境如 http://localhost:5173 是另一个来源。CORS 只允许浏览器读取跨域响应,不能替代访问权限策略,也无需把 Bucket 改成公共读写
4. 在 password-XL 登录
选择“阿里云 OSS”,输入地域、Bucket、AccessKey ID 和 Secret,按页面要求填写。不要把 CDN 域名当成 OSS 地域,也不要把 ARN/资源路径当成 Bucket 名
登录后创建主密码,保存一条虚构测试记录。重新连接并解锁,确认记录存在。再在另一设备使用同一 Bucket 与主密码读取,验证跨设备访问
5. 备份与轮换
定期导出 JSON,保留设置和云配置的独立备份。需要轮换 AccessKey 时先创建新的最小权限凭据,在一台客户端验证读写,再更新其他设备,最后停用旧凭据
故障排查
| 错误 | 检查方向 |
|---|---|
| AccessDenied / 403 | RAM 策略、对象前缀、Bucket 所属账号、密钥是否启用 |
| SignatureDoesNotMatch | ID/Secret 是否配对、输入是否多空格、系统时间与地域 |
| CORS / Failed to fetch | 真实来源、请求方法、请求头、暴露 ETag、网络 |
| 能读不能保存 | PutObject 权限、存储空间与请求错误,不是主密码问题 |
| 切换设备为空 | Bucket、地域、对象前缀、主密码是否与原环境一致 |
云厂商控制台可能调整菜单,权限字段以OSS 官方文档为准