第17章 配置 Google Cloud Storage (S3 兼容)
谷歌云存储(兼容 S3)
使用兼容 S3 存储策略的 Google Cloud Storage 来存储文件。
配置
创建存储桶和访问凭证
在 Google Cloud Console 中创建一个存储桶,然后进入“设置 -> 互操作性 -> 用户账户 HMAC”,并生成一组访问密钥:
在 Cloudreve 中,创建一个“兼容 S3”的存储策略,并按照以下规则填写信息: * 存储桶名称:填入刚刚创建的存储桶名称; * 端点(Endpoint):填入 `https://storage.googleapis.com`; * 区域(Region):填入 `auto`; * 访问凭证:填入刚刚创建的访问密钥的 Access Key 和 Secret; * 最大批量删除大小:填入 `1`。由于 GCS 未实现 S3 的批量删除 API,需手动设置为 1,否则无法回收 Blob 文件。
配置 CORS 策略
在使用 Cloudreve Web 界面上传或浏览文件之前,需要为存储桶配置 CORS 策略。Google Cloud Storage 不支持一键配置 CORS,需手动进行。以下是一个可用的 CORS 配置文件示例:
```json [ { "maxAgeSeconds": 3600, "method": ["GET", "POST", "PUT", "DELETE", "HEAD"], "origin": ["*"], "responseHeader": ["*"] } ] ```
在 Google Cloud 控制台左上角打开 Cloud Shell 窗口,执行以下命令:
```bash echo '[{"maxAgeSeconds": 3600, "method": ["GET", "POST", "PUT", "DELETE", "HEAD"], "origin": ["*"], "responseHeader": ["*"]}]' > cors.json gsutil cors set cors.json gs://your-bucket-name ```
关于详细的操作文档,请参阅“设置和查看 CORS 配置”。
常见问题解答
上传错误:Request failed: AxiosError: Network Error * 检查用户是否能连接到 `storage.googleapis.com`; * 检查是否已设置存储桶的 CORS 策略,以及设置是否正确。
上传错误:Chunk upload failed: Invalid argument. 检查“设置 -> 文件系统 -> 上传会话 TTL(秒)”,其值应小于 864000。
传输上传失败,错误:Unable to parse response 展开详细错误信息,检查错误消息中是否包含“413 Request Entity Too Large”。 * 如果包含,请修改 Nginx 反向代理配置,设置或增大 `client_max_body_size` 的值,例如设置为 `client_max_body_size 20000m;`。该配置值应大于正在上传的文件大小。 * 检查是否有外部 WAF 防火墙拦截了上传请求。