S3 兼容对象存储
适用于 AWS S3,以及提供兼容 API 的 COS、OSS、MinIO 等服务。
| 字段 | 说明 |
|---|---|
| Access Key / Secret Key | 访问凭据 |
| Bucket | 已存在的桶名称 |
| Region | 服务区域;AWS 通常必填 |
| Endpoint | 兼容服务的 API 地址;AWS 可按环境留空 |
| Path style | 使用 endpoint/bucket/key,MinIO 等服务常需开启 |
| 代理上传/下载 | 强制内容经过 go-drive |
| 缓存 TTL | 条目缓存时间 |
凭据至少需要目标桶的列举、读取、写入、复制和删除对象权限。建议为 go-drive 创建专用最小权限账号。
浏览器直传的 CORS
关闭代理上传/下载时,浏览器会直接访问 S3。桶的 CORS 至少需要允许 go-drive 站点域名使用:
- 上传:
PUT、POST,请求头content-type、x-amz-content-sha256,暴露etag。 - 下载:
GET、HEAD。
AWS 示例:
json
[
{
"AllowedHeaders": ["content-type", "x-amz-content-sha256"],
"AllowedMethods": ["PUT", "POST"],
"AllowedOrigins": ["https://drive.example.com"],
"ExposeHeaders": ["etag"]
},
{
"AllowedHeaders": [],
"AllowedMethods": ["GET", "HEAD"],
"AllowedOrigins": ["https://drive.example.com"],
"ExposeHeaders": []
}
]同时把站点域名加入对象存储的 Referer/防盗链白名单。不要在生产环境使用 * 代替明确域名和请求头。
常见问题
HeadBucket失败:检查 endpoint、region、DNS、证书和凭据权限。- 兼容服务出现地址错误:切换 path-style。
- 网页上传失败但后台复制成功:通常是 CORS 或防盗链,而不是 S3 凭据。
- 内网站点无法访问云端直链:启用代理上传/下载。