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

使用Ruby无需临时文件上传CSV payload到Google Storage的方法问询

实现方案

完全可以避免创建本地临时文件,Google Cloud Storage官方Ruby SDK的create_file方法本身支持传入类IO对象,你只需要将生成好的CSV字符串包装为StringIO实例直接传入即可,无需落盘。

示例代码

require "google/cloud/storage"
require "stringio"

# 此处替换为你通过CSV库生成的字符串payload
csv_payload = CSV.generate do |csv|
  csv << ["列1", "列2", "列3"]
  csv << ["值1", "值2", "值3"]
end

storage = Google::Cloud::Storage.new
bucket  = storage.bucket bucket_name

# 直接传入StringIO对象,可选指定content_type匹配文件类型
file = bucket.create_file StringIO.new(csv_payload), file_name, content_type: "text/csv"

补充说明

create_file方法的第一个参数支持三类输入:

  • 本地文件路径字符串
  • 任意响应read方法的IO对象(包括StringIO、File实例、网络流等)
  • 已打开的文件描述符

如果你的payload体积较大,也可以直接通过流的方式分块传入,全程不需要在磁盘生成临时文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:48:03