You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Cloud Function /tmp目录的CSV文件移动至Google Cloud Storage存储桶

报错原因

你当前调用的方法与上传场景不匹配,且路径拼接不符合GCS操作规范,触发了报错:

  • download_to_filename() 是将GCS文件下载到本地的接口,无法用于本地上传至GCS的操作
  • copy_blob() 是GCS存储桶内部/跨桶的Blob复制接口,无法读取本地/tmp目录的文件
  • 你传入的my-project.appspot.com/my-folder/my-converted-file.csv是GCS对象的全路径,本地文件系统不存在该路径,因此触发FileNotFoundError

正确实现方案

你需要使用blob.upload_from_filename()接口,将/tmp目录下的本地CSV文件直接上传到GCS指定路径,具体实现如下:

  1. 先在项目的requirements.txt中添加依赖:
google-cloud-storage>=2.0.0
  1. 上传逻辑代码示例:
from google.cloud import storage

# 初始化GCS客户端,Cloud Function runtime会自动读取默认服务账号凭证,无需手动配置
storage_client = storage.Client()

# 替换为实际参数
bucket_name = "my-project.appspot.com" # 你的目标存储桶名
local_csv_path = "/tmp/generated_file.csv" # 你在/tmp下生成的CSV文件路径
gcs_target_path = "my-folder/my-converted-file.csv" # 桶内目标存储路径,不需要带桶名

# 执行上传
bucket = storage_client.bucket(bucket_name)
target_blob = bucket.blob(gcs_target_path)
target_blob.upload_from_filename(local_csv_path)

注意事项

  • Cloud Function默认服务账号需要拥有目标存储桶的storage.objectCreator权限,否则会触发权限拒绝报错
  • 如果你的Cloud Function是由原始CSV上传事件触发的,可以直接从事件参数中提取原始文件的所属文件夹路径,自动拼接生成目标gcs_target_path,无需硬写路径

内容的提问来源于stack exchange,提问作者EhMaMuffin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 20:45:04