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

如何从Snowflake获取内部Stage的StageInfo凭证实现数据流直传

方案说明

你要的StageInfo凭证可以通过两种官方合法方式获取,具体如下:

方式1:调用Snowflake官方REST API接口(和Node.js连接器内部逻辑完全一致)

Snowflake Node.js连接器内部就是调用的/session/v1/upload-request接口获取StageInfo,你可以直接复用这个逻辑:

  • 前置要求:你已经完成Snowflake账号登录,拿到了有效的会话Bearer Token、账户对应的访问域名
  • 请求方法:POST
  • 请求路径:https://<你的Snowflake账户域名>/session/v1/upload-request
  • 请求头必须携带:
    • Authorization: Bearer <你的会话令牌>
    • Content-Type: application/json
  • 请求Body参数示例:
{
  "stageName": "@~", // 替换为你要上传的目标Stage,@~代表当前用户的个人内部Stage
  "filePath": "your/upload/path/filename.csv", // 替换为你要上传到Stage里的文件路径
  "requestType": "UPLOAD"
}

接口返回的内容结构和你调试拿到的StageInfo完全一致,包含对应云存储的临时凭证、桶地址、区域、路径等所有你需要的字段。

方式2:执行Snowflake内置SQL函数获取(更简单)

如果你已经建立了正常的Snowflake连接,直接执行以下SQL即可拿到Stage对应的凭证和配置信息:

-- 先获取Stage的位置和区域信息
DESCRIBE STAGE @~; -- 替换为你的Stage名
-- 再获取临时访问凭证,GCP/Azure对应换为SYSTEM$GET_GCP_STAGE_CREDENTIALS/SYSTEM$GET_AZURE_STAGE_CREDENTIALS
SELECT SYSTEM$GET_AWS_STAGE_CREDENTIALS('@~');

拼接两个查询的结果就能得到完整的StageInfo结构。

注意事项

  • 获取到的临时凭证有效期仅为数分钟,仅对当前请求的Stage路径有权限,过期后需要重新申请
  • 上传完成后,你可以正常执行COPY INTO命令将Stage内的文件加载到目标表中,和使用官方SDK上传的文件没有任何差异

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:06:02