.NET v 5.0 缺少 Amazon S3 SelectObjectContent 支持?

Amazon S3 SelectObjectContent Support Missing for .NET v 5.0?

我发现 AWS SDK 在 .NET v4.8 和 .NET v5.0 / .NETCore v3.1 之间似乎发生了重大变化。按照 official blog 中的教程,我发现我无法 compile/run 使用 同步 方法 compile/run .NET v5.0 或 .NETCore v3.1 中的示例 SelectObjectContent。 AWS SDK API 清楚这是一个可调用的方法,但我的 Visual Studio/Rider 看到它是作为 internal 方法实现的,所以我无法干净地访问它。事实上,我什至无法编译。

然而,经过详尽的尝试后,我意识到回到 .NET Framework v4.8 它可以像宣传的那样工作,即使使用相同的 AWS SDK nuget (v3.7.0.21)。

是否有访问该功能的首选方式,或者是否意外引入了未记录的重大更改?我不确定如何区分这是 .NET Framework 还是 AWS SDK 的问题,所以我不确定应该在哪里报告它。代码来自 AWS,但这取决于 .NET Framework 版本。

同步方法已消失,因为它旨在用于 .NET/.NET Core 项目和相应的 SDK。

GitHub 为 AWS 工作的用户 normj stated in a thread:

The reason the .NET Core version only has async is because the underlying http client available in .NET Core only supports async operations. We debated about keeping the sync methods in the .NET Core version and have them just call the async versions and then block. The problem with that is the SDK would not be following best practice for the platform and more importantly it could mask a potential performance problem.

因此,您遵循的指南不一定是错误的,但它可能有点误导 - 您只需要使用您可以使用的任何一个即可。

此外,尽管使用相同版本的 AWSSDK,但根据您的项目所针对的框架,它会引用在包的 lib 文件夹中找到的不同 DLL,这解释了为什么 .NET Framework项目该方法可用,但对于.NET Core/.NET,则不可用。 Visual Studio 中解决方案资源管理器中 DLL 的属性也将表明这一点(注意路径 属性)。