c# - 使用 Sagemaker 获取 Amazon.RegionEndpoint 的冲突错误

标签 c# amazon-s3 amazon-sagemaker

我在 C# 中创建了一个应用程序,我需要将一些数据放在 S3 存储桶中,并调用 AWS sagemaker API。 由于两个引用中都存在相同的 Amazon.RegionEndPoint 类,因此会出现以下错误。

The type 'RegionEndpoint' exists in both 'AWSSDK.Core, Version=3.3.0.0, Culture=neutral, PublicKeyToken=885c28607f98e604' and 'AWSSDK, Version=2.3.55.2

基本上,我尝试按照我使用的代码在 AWS S3 上上传文件。

AmazonS3Client s3Client = new AmazonS3Client(_AWS_ACCESS_KEY_ID, _AWS_SECRETE_ACCESS_KEY, Amazon.RegionEndpoint.USEast2);
 PutObjectRequest request = new PutObjectRequest
  {
    BucketName = _BucketName,
    Key = i_sDestFileName,
    FilePath = i_sSourceFilePath,
    ContentType = "text/plain"
  };
  s3Client.PutObject(request);

它在单个应用程序上运行良好,但当我将代码与 Sagemaker API 调用集成时,Amazon.RegionEndpoint.USEast2 发生冲突。

最佳答案

不要将 AWSSDK 包与 AWSSDK.Core 一起使用。使用包管理器删除它并添加您的服务特定包,例如 AWSSDK.S3AWSSDK.EC2

AWSSDK.Core 是一个新的,支持 .NET 核心,你需要安装特定于服务的包,而旧的 AWSSDK 是一个单独的包所有服务。以下是来自 nuget 的旧版 AWSSDK 包的说明:

This is the previous version 2 generation of the AWS SDK for .NET. The new version 3 of the AWS SDK for .NET uses separate packages for each service. For example Amazon S3 is in the AWSSDK.S3 package, Amazon SQS is in AWSSDK.SQS and Amazon DynamnoDB is in AWSSDK.DynamoDBv2.

一旦删除旧的并使用特定的包,冲突就会得到解决。但是,请注意可能还有其他错误,因为结构略有变化但很明显/很容易修复。从积极的方面来说,您可以获得异步版本。 ;)

--

//注意到上面@Gerry-coll 对主要问题的评论,也提到了这一点。为现在遇到此问题的其他人留下详细的答案。

关于c# - 使用 Sagemaker 获取 Amazon.RegionEndpoint 的冲突错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48522013/

相关文章:

c# - C#'s can' t 使 `notnull` 类型可以为空

amazon-s3 - 使用放大覆盖公开特定的 S3 存储桶文件夹

amazon-web-services - AWS Sagemaker - 客户端错误 : An error occurred (ValidationException) when calling the CreateTransformJob operation

python - SageMaker 使用对象检测算法管理 Spot 训练

pandas - 如何将数据从 S3 存储桶加载到 Sagemaker jupyter 笔记本来训练模型?

c# - 处理将相似实体分组在一起的设计模式

javascript - 如何在 C#/asp.Net/Razor 中异步获取用户键盘输入

c# - 如何设置 Unity 3 以在控制台应用程序中工作?

amazon-s3 - Snowflake - 如何从 S3 中的 Parquet 文件中读取元数据

go - 无法使用sudo命令运行go程序