AWS .NET - SharedCredentialsFile 和 NetSDKCredentialsFile 之间的区别

AWS .NET - Difference between SharedCredentialsFile and NetSDKCredentialsFile

我一直在关注 AWS tutorials for .NET developers,发现它同时使用了 SharedCredentialsFileNetSDKCredentialsFile。这两个 API 之间有什么区别吗?在我的代码中,它们可以互换,没有任何明显的区别:

    public CredentialProfile GetProfile(string profileName)
    {
        // Which one should I use?
        var sharedFile = new SharedCredentialsFile();
        //var sharedFile = new NetSDKCredentialsFile();

        if (!sharedFile.TryGetProfile(profileName, out var result))
        {
            var options = new CredentialProfileOptions
            {
                AccessKey = Configuration.AccessKey,
                SecretKey = Configuration.SecretKey
            };

            var profile = new CredentialProfile(profileName, options);
            profile.Region = RegionEndpoint.EUWest1;
            sharedFile .RegisterProfile(profile);

            result = profile;
        }

        return result;
    }

其中之一是否已过时?是否有应该使用的最佳实践?或者它们是相同的?

请注意,我正在 Windows PC 上开发,但该应用程序将 运行 在 Linux 服务器上。这会有什么不同吗?

我想我在这里找到了答案:

  • NetSDKCredentialsFile 使用与 Visual Studio 的 AWS Toolkit 相同的商店,但它不适用于 Linux.
  • SharedCredentialsFile 未与 Visual Studio 的 AWS 工具包集成,但适用于所有平台。

适用于 Visual Studio 的 AWS 工具包与 NetSDKCredentialsFile 和 SharedCredentialsFile 集成。在 AWS SDK 统一围绕 SharedCredentialsFile 管理的 .aws/credentials 文件之前,NetSDKCredentialsFile 是 .NET SDK 的原始凭证存储。在这一点上,我建议使用 SharedCredentialsFile,这样您的凭证将与所有其他 AWS 工具和 SDK 兼容。