我在 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.S3
或 AWSSDK.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/