--- title: 云存储配置 description: 如何配置多平台云存储 --- ## 概览 管理员可以在 `/admin/system` 管理 S3 配置,包括添加、删除和修改云存储的 S3 配置。 WR.DO 目前支持多种云存储提供商: - Cloudflare R2 - AWS S3 - 腾讯云 COS - 阿里云 OSS - 自定义提供商 (兼容 S3 API) > 一个提供商可以添加多个存储桶 ## Cloudflare R2 ### 1. 创建 R2 存储桶 1. 登录您的 [Cloudflare 仪表板](https://dash.cloudflare.com/) 2. 从左侧边栏导航到 **R2 对象存储** 3. 点击 **创建存储桶** 4. 输入您的存储桶名称(例如:`wrdo`) 5. 选择位置(建议选择自动) 6. 点击 **创建存储桶** ### 2. 获取 API 凭证 1. 在您的 Cloudflare 仪表板中,前往 **我的个人资料** > **API 令牌** 2. 点击 **创建令牌** 3. 使用 **R2 令牌** 模板或创建自定义令牌,包含: - **权限**: `R2:Edit` - **账户资源**: 包含您的账户 - **区域资源**: 包含所有区域(如果需要) 4. 点击 **继续摘要**,然后 **创建令牌** 5. 复制并保存令牌(这是您的 **访问密钥 ID** 和 **秘密访问密钥**) ### 3. 获取账户 ID 1. 在您的 Cloudflare 仪表板中,前往右侧边栏 2. 复制您的 **账户 ID** ### 4. 获取公共 URL 1. 在您的 Cloudflare 仪表板中,前往 **R2 对象存储** > **存储桶详情** > **公共开发 URL** 如果您已配置自定义域名,请使用该域名。 ### 5. 配置 CORS 1. 在您的 Cloudflare 仪表板中,前往 **R2 对象存储** > **存储桶设置** -> **CORS 策略** 填入以下内容: ```json [ { "AllowedOrigins": [ "http://localhost:3000", "https://wr.do" // 替换为您的域名 ], "AllowedMethods": [ "GET", "PUT", "POST", "DELETE", "HEAD" ], "AllowedHeaders": [ "*" ], "ExposeHeaders": [ "ETag" ], "MaxAgeSeconds": 3600 } ] ``` ### 6. 在 WR.DO 中配置 访问 `localhost:3000/admin/system`,填写配置表单: - **提供渠道**: cloudflare (r2) - **渠道名称**: Cloudflare R2(或任何自定义名称) - **S3 端点**: `https://<账户ID>.r2.cloudflarestorage.com`(替换为您的账户端点) - **访问密钥 ID**: 第 2 步中的 API 令牌 - **机密访问密钥**: 第 2 步中的 API 令牌 - **启用**: 开启 - **存储桶名称**: 您的存储桶名称 - **公开域名或自定义域名**: 参考第 4 步 - **存储桶区域**: auto - **前缀**: 可选 - **公开**: 如果您想要公共访问,请启用 ## 腾讯云 COS ### 1. 创建 COS 存储桶 1. 登录 [腾讯云控制台](https://console.cloud.tencent.com/cos) 2. 点击 **存储桶列表** > **创建存储桶** 3. 输入存储桶名称(例如:`wrdo-1303456836`) 4. 选择地域(例如:`ap-chengdu`) 5. 配置访问权限 6. 点击 **创建** ### 2. 获取 API 密钥 1. 前往 [CAM 控制台](https://console.cloud.tencent.com/cam/capi) 2. 点击 **新建密钥** 或使用现有密钥 3. 保存您的 **SecretId** 和 **SecretKey** ### 3. CORS 设置 1. 前往 [COS 控制台](https://console.cloud.tencent.com/cos) 2. 点击 **存储桶列表** > **选择存储桶** -> 安全管理 -> 跨域访问 CORS 设置 3. 填入下列规则: ![](/_static/docs/cos-cors.png) ### 4. 在 WR.DO 中配置 填写配置表单: - **提供渠道**: tencent (cos) - **渠道名称**: 腾讯云 COS(或任何自定义名称) - **S3 端点**: `https://cos.ap-chengdu.myqcloud.com`(替换为您的地域) - **访问密钥 ID**: 您的 SecretId - **机密访问密钥**: 您的 SecretKey - **启用**: 开启 - **存储桶名称**: 您的存储桶名称(例如:`wrdo-1303456836`) - **公开域名或自定义域名**: `https://wrdo-1303456836.cos.ap-chengdu.myqcloud.com`(您的存储桶公共 URL) - **存储桶区域**: 您的 COS 地域(例如:`ap-chengdu`) - **前缀**: 可选日期前缀 - **公开**: 如果您想要公共访问,请启用 ## 阿里云 OSS ### 1. 创建 OSS 存储桶 1. 登录 [阿里云控制台](https://oss.console.aliyun.com/) 2. 点击 **创建 Bucket** 3. 输入存储桶名称 4. 选择地域(例如:`oss-cn-hangzhou`) 5. 配置 ACL 和其他设置 6. 点击 **确定** ### 2. 获取 AccessKey 1. 前往 [RAM 控制台](https://ram.console.aliyun.com/manage/ak) 2. 点击 **创建 AccessKey** 或使用现有密钥 3. 保存您的 **AccessKeyId** 和 **AccessKeySecret** ### 3. 在 WR.DO 中配置 填写配置表单: - **提供渠道**: ali (oss) - **渠道名称**: 阿里云 OSS(或任何自定义名称) - **S3 端点**: `https://oss-cn-hangzhou.aliyuncs.com`(替换为您的地域) - **访问密钥 ID**: 您的 AccessKeyId - **机密访问密钥**: 您的 AccessKeySecret - **启用**: 开启 - **存储桶名称**: 您的存储桶名称 - **公开域名或自定义域名**: `https://your-bucket.oss-cn-hangzhou.aliyuncs.com`(您的存储桶公共 URL) - **存储桶区域**: 您的 OSS 地域(例如:`oss-cn-hangzhou`) - **前缀**: 可选日期前缀 - **公开**: 如果您想要公共访问,请启用 ## AWS S3 ### 1. 创建 S3 存储桶 1. 登录 [AWS 控制台](https://console.aws.amazon.com/s3/) 2. 点击 **创建存储桶** 3. 输入存储桶名称(全球唯一) 4. 选择 AWS 区域 5. 根据需要配置存储桶设置 6. 点击 **创建存储桶** ### 2. 创建 IAM 用户 1. 前往 [IAM 控制台](https://console.aws.amazon.com/iam/) 2. 点击 **用户** > **添加用户** 3. 输入用户名并选择 **编程访问** 4. 附加现有策略或创建具有 S3 权限的自定义策略: ```json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::your-bucket-name", "arn:aws:s3:::your-bucket-name/*" ] } ] } ``` 5. 完成用户创建并保存 **访问密钥 ID** 和 **秘密访问密钥** ### 3. 在 WR.DO 中配置 填写配置表单: - **提供渠道**: aws (s3) - **渠道名称**: AWS S3(或任何自定义名称) - **S3 端点**: `https://s3.amazonaws.com`(或特定区域端点) - **访问密钥 ID**: 您的 IAM 用户访问密钥 ID - **机密访问密钥**: 您的 IAM 用户秘密访问密钥 - **启用**: 开启 - **存储桶名称**: 您的 S3 存储桶名称 - **公开域名或自定义域名**: 您的存储桶公共 URL 或 CloudFront 分发 - **存储桶区域**: 您的 S3 区域(例如:`us-east-1`) - **前缀**: 可选日期前缀 - **公开**: 如果您想要公共访问,请启用 ## 通用配置选项 ### 前缀设置 - 使用基于日期的前缀(例如:`2025/08/08`)按日期组织文件 - 如果您喜欢扁平文件结构,请留空 ### 公共访问 - 如果您希望文件可以通过直接 URL 访问,请启用 **公开** - 对于私有文件存储,请禁用 ### 自定义域名 - 配置自定义域名以获得更好的品牌体验 - 确保为您的域名进行正确的 DNS 配置 ## 故障排除 ### 常见问题 1. **访问被拒绝**: 检查您的 API 凭证和权限 2. **存储桶未找到**: 验证存储桶名称和区域设置 3. **CORS 问题**: 如果需要,在您的存储桶中配置 CORS 设置 4. **端点错误**: 确保您的提供商端点格式正确 ### 测试配置 保存配置后,您可以通过以下方式测试: 1. 通过管理界面上传测试文件 2. 检查文件是否出现在您的云存储桶中 3. 验证公共访问(如果启用)是否可以通过文件 URL 访问