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

从Visual Studio 2015上传文件至AWS Cloud遇NameResolutionFailure错误求助

解决AWS S3上传时的NameResolutionFailure异常问题

看起来你遇到的NameResolutionFailure问题大概率和代码里S3存储桶的错误拼接方式有关,结合你的代码和问题描述,我整理了几个针对性的解决方向:

1. 修正错误的Bucket名称拼接逻辑(最核心原因)

你代码里把subDirectoryInBucket直接拼到了BucketName里,这是完全错误的做法。AWS S3的存储桶名称不能包含斜杠/,当你这样拼接后,SDK会尝试解析类似bucketname/subdirectory.s3.us-west-2.amazonaws.com的无效域名,直接触发域名解析失败的NameResolutionFailure异常。

正确的S3逻辑是:存储桶名称保持纯净,子目录实际上是对象Key的前缀。修改后的代码如下:

public void sendMyFileToS3(System.IO.Stream localFilePath, string bucketName, string subDirectoryInBucket, string fileNameInS3) { 
    IAmazonS3 client = new AmazonS3Client(RegionEndpoint.USWest2); 
    TransferUtility utility = new TransferUtility(client); 
    TransferUtilityUploadRequest request = new TransferUtilityUploadRequest(); 

    // 直接设置原始bucket名称,不要添加子目录
    request.BucketName = bucketName; 

    // 将子目录作为文件Key的前缀
    request.Key = string.IsNullOrEmpty(subDirectoryInBucket) 
        ? fileNameInS3 
        : $"{subDirectoryInBucket}/{fileNameInS3}"; 

    request.InputStream = localFilePath; 
    try { 
        utility.Upload(request); 
    } catch (Exception ex) { 
        // 建议包装异常保留原始信息,方便后续调试
        throw new Exception("上传文件至S3失败", ex); 
    } 
}

2. 排查网络与域名解析问题

NameResolutionFailure本质是本地无法解析S3的服务域名,你可以做以下验证:

  • 打开命令提示符,执行 nslookup s3.us-west-2.amazonaws.com,检查是否能正常返回IP地址。如果无法解析,说明本地DNS配置异常,或者公司防火墙/代理阻止了域名解析请求。
  • 如果你的网络环境使用代理服务器,需要给AWS SDK配置代理信息:
var s3Config = new AmazonS3Config
{
    ProxyHost = "你的代理服务器地址",
    ProxyPort = 代理端口号,
    // 若代理需要认证,添加以下配置
    ProxyCredentials = new System.Net.NetworkCredential("代理用户名", "代理密码")
};
IAmazonS3 client = new AmazonS3Client(s3Config);

3. 更新AWS SDK版本

Visual Studio 2015对应的.NET框架版本相对老旧,如果你使用的AWS SDK for .NET版本太低,可能存在端点解析的兼容性问题。建议通过NuGet包管理器搜索AWSSDK.S3,更新到兼容你当前.NET版本的最新SDK。

4. 确认存储桶与区域匹配

虽然你提到尝试了所有区域,但还是要确保代码里指定的RegionEndpoint和你的S3存储桶实际所在区域完全一致。比如存储桶位于美东(弗吉尼亚),应该使用RegionEndpoint.USEast1。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:04:33