创建本地环境以从 Flask 操作 GCS 模拟器
本文介绍如何在本地环境中使用 GCS 模拟器,以便在 Cloud Run 上构建使用 Flask 操作 Google Cloud Storage (GCS) 的应用程序。
模拟器选择
示例代码及设置
示例代码已上传至 GitHub 仓库(flask-gcs),详细步骤请参考仓库中的 README.md 文件。 通过克隆仓库并运行 make up 命令即可快速搭建本地环境,实现文件的上传、下载和删除操作。
docker-compose.yml 配置
为了在 Flask 容器中使用 GCS 模拟器,需要设置 storage_emulator_host 环境变量:
services: app: environment: - storage_emulator_host=http://gcs:4443
Flask 中的 Storage Client 配置
通过检查 storage_emulator_host 环境变量来判断是否使用模拟器:
def get_storage_client(): emulator_host = Config.STORAGE_EMULATOR_HOST if emulator_host: client = storage.Client( credentials=AnonymousCredentials(), project="test", ) else: client = storage.Client() return client
总结
在本地开发环境中使用 GCS 模拟器,可以方便地测试 Flask 应用与 GCS 的交互。 生产环境中无需使用模拟器,只需移除 storage_emulator_host 环境变量,指定您的 bucket 名称,并确保 Cloud Run 拥有相应的权限即可。