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

使用C#通过AWS Snowball S3 Adapter上传带元数据文件遇域名解析错误

解决AWS Snowball S3 Adapter上传时的NameResolutionFailure异常

我之前也碰到过一模一样的问题,你这个报错的根源其实很明确——AWS SDK默认会用虚拟主机样式构造请求,把你的桶名直接拼到端点域名前面,变成了BUCKET.localhost,但本地DNS根本识别不了这个自定义域名,自然就报名称解析失败了。

解决这个问题的核心就是强制SDK使用路径样式访问,让桶名出现在请求路径里而不是域名前缀中,具体操作很简单,在创建AmazonS3Client的时候修改配置即可:

// 创建S3配置对象,指定Adapter端点并开启路径样式访问
var s3Config = new AmazonS3Config
{
    ServiceURL = "http://localhost:8090",
    ForcePathStyle = true // 这是解决问题的关键配置
};

// 使用配置好的对象创建S3客户端
using var s3Client = new AmazonS3Client(s3Config);

// 之后用这个client执行PutObjectRequest或者TransferUtility的上传操作就正常了

开启ForcePathStyle之后,SDK会把请求格式从http://BUCKET.localhost:8090/object-key改成http://localhost:8090/BUCKET/object-key,这样本地就能正确路由到运行在8090端口的S3 Adapter了。

另外再确认两点:

  • 确保你的S3 Adapter确实在localhost:8090正常运行,没有被防火墙或其他程序占用端口;
  • 你的桶名符合S3的命名规范(不过这个问题里主要是请求样式的问题,桶名只要合法就行)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:41:56