
fsouza/fake-gcs-server该镜像提供Google Cloud Storage(GCS)的本地模拟服务,允许开发者在不依赖真实Google Cloud环境的情况下,在本地开发、测试和调试与GCS交互的应用程序。通过模拟GCS API接口,镜像可复现核心存储功能,降低开发依赖并加速测试流程。
通过以下命令启动GCS模拟器容器:
bashdocker run -d -p 9023:9023 --name gcs-emulator gcr.io/google.com/cloudsdktool/cloud-sdk:emulators
注:默认暴露9023端口,可通过
-p参数映射到主机端口
支持通过环境变量自定义模拟器行为:
| 环境变量 | 描述 | 默认值 |
|---|---|---|
PORT | 服务监听端口 | 9023 |
STORAGE_PATH | 模拟数据存储路径(容器内) | /data |
LOG_LEVEL | 日志级别(DEBUG/INFO/WARN/ERROR) | INFO |
示例:自定义端口和存储路径
bashdocker run -d \ -p 8080:8080 \ -e PORT=8080 \ -e STORAGE_PATH=/gcs-data \ -v $(pwd)/gcs-data:/gcs-data \ --name gcs-emulator gcr.io/google.com/cloudsdktool/cloud-sdk:emulators
通过挂载主机目录到容器内的存储路径,实现数据持久化:
bashdocker run -d \ -p 9023:9023 \ -v $(pwd)/local-gcs-data:/data \ --name gcs-emulator gcr.io/google.com/cloudsdktool/cloud-sdk:emulators
在应用中配置GCS客户端连接到本地模拟器,以Python应用为例:
pythonfrom google.cloud import storage from google.auth.credentials import AnonymousCredentials # 配置客户端连接到本地模拟器 client = storage.Client( credentials=AnonymousCredentials(), project='test-project', ) client._http_internal = client._http # 修复模拟器连接问题 client.host = 'http://localhost:9023' # 模拟器地址
使用curl测试模拟器API(创建桶并上传文件):
bash# 创建测试桶 curl -X POST "http://localhost:9023/storage/v1/b?project=test-project" \ -H "Content-Type: application/json" \ -d '{"name": "my-test-bucket"}' # 上传文件到桶 curl -X PUT "http://localhost:9023/storage/v1/b/my-test-bucket/o/test-file?uploadType=media" \ -H "Content-Type: text/plain" \ -d "Hello, GCS Emulator!"
bash# 停止容器 docker stop gcs-emulator # 删除容器 docker rm gcs-emulator
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务