如何将ACC Data Connector API返回的签名URL对应CSV自动存入Google Cloud Storage?
直接将签名URL指向的CSV文件存入Google Cloud Storage的方法
方案1:使用gsutil命令行工具
这是最快捷的方式,gsutil支持直接从HTTP/HTTPS URL复制文件到GCS,全程在云端传输,不会经过本地机器。
- 确保已安装并配置
gcloudCLI,且当前账号拥有目标GCS存储桶的写入权限 - 执行以下命令:
gsutil cp "你的签名URL地址" gs://你的存储桶名称/目标文件名.csv
如果签名URL需要自定义请求头(比如特定的Authorization参数),可以添加-H参数:
gsutil cp -H "Header-Name: Value" "你的签名URL地址" gs://你的存储桶名称/目标文件名.csv
方案2:使用Python代码实现(适合自动化场景)
如果需要集成到脚本或应用中,可以用Google Cloud Storage SDK结合请求库实现流式传输,避免加载整个文件到内存。
- 安装依赖包:
pip install google-cloud-storage requests
- 编写代码:
import requests from google.cloud import storage def transfer_signed_url_to_gcs(signed_url, bucket_name, dest_blob_path): # 初始化GCS客户端 storage_client = storage.Client() bucket = storage_client.get_bucket(bucket_name) blob = bucket.blob(dest_blob_path) # 流式获取文件内容并上传到GCS with requests.get(signed_url, stream=True) as response: response.raise_for_status() # 检查请求是否成功 blob.upload_from_file( response.raw, content_type=response.headers.get('Content-Type', 'text/csv') ) # 调用示例 if __name__ == "__main__": SIGNED_CSV_URL = "你的签名URL地址" GCS_BUCKET = "你的存储桶名称" DEST_FILE_PATH = "data/imported_file.csv" transfer_signed_url_to_gcs(SIGNED_CSV_URL, GCS_BUCKET, DEST_FILE_PATH)
注意事项
- 确认签名URL的有效期足够完成传输,避免中途失效
- 确保操作账号拥有GCS存储桶的
storage.objects.create权限 - 大文件推荐用流式传输(上述两种方案均支持),避免内存溢出
内容的提问来源于stack exchange,提问作者KwanYee Tan
相关产品推荐
相关产品推荐

