Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services Unity UWP build can';在默认位置的共享凭据文件中找不到AWSCredentials_Amazon Web Services_Unity3d_Uwp - Fatal编程技术网

Amazon web services Unity UWP build can';在默认位置的共享凭据文件中找不到AWSCredentials

Amazon web services Unity UWP build can';在默认位置的共享凭据文件中找不到AWSCredentials,amazon-web-services,unity3d,uwp,Amazon Web Services,Unity3d,Uwp,我正在使用Unity UWP和Amazon AWS进行一些测试(创建一个bucket、上传一个文件、列出bucket等) 当我在编辑器中播放它时,一切正常,但当我试图在UWP构建中查找我的AWS凭据时,却找不到它们。这是我的代码: void Start() { chain = new CredentialProfileStoreChain(); if (chain.TryGetAWSCredentials("default", out awsCredenti

我正在使用Unity UWP和Amazon AWS进行一些测试(创建一个bucket、上传一个文件、列出bucket等)

当我在编辑器中播放它时,一切正常,但当我试图在UWP构建中查找我的AWS凭据时,却找不到它们。这是我的代码:

void Start()
{
    chain = new CredentialProfileStoreChain();

    if (chain.TryGetAWSCredentials("default", out awsCredentials))
    {
        client = new AmazonS3Client(awsCredentials);
        Debug.Log("Credential OK");
    }
    else
    {
        Debug.Log("Credential NO OK");
    }
}
所以,每次我都得到“凭证不合格”,无法继续测试

这可能是因为UWP非常沙盒化,并且用户没有显式访问defaul位置的“凭证”和“配置”文件吗?

如果是,解决方案或解决方法是什么。我不想在代码中使用我的凭据。

统一版本:2020.3.3f1 AWS SDK:netstandard2.0 DLL的3.7.38版 构建环境:VisualStudio2019 构建类型:仅可执行(用于快速迭代和本地测试) 构建配置:发布 目标架构:x64 测试环境:UWP在Windows 10桌面上运行,版本19041.985 Api兼容级别:.NET标准2.0

此外,我还添加了一个“link.xml”文件来保存我的AWS.dll,并在“播放器设置”和“appxmanifest”中添加了“internet客户端”


提前感谢您。

作为这种情况的解决方法,我在环境变量中设置了凭据。正如本文所建议的,环境变量是获取aws凭证而无需硬编码的一个选项

你可以从亚马逊文档中学习

这并不能解释为什么默认位置的“TryGetAWSCredentials”在UWP上不起作用,但允许我继续测试

最后,我的代码,例如,用以下方法列出我的桶:

public async void RegionCredentials()
{
    Amazon.RegionEndpoint region = Amazon.RegionEndpoint.GetBySystemName("us-east-1");

    using (var client3 = new AmazonS3Client(region))
    {
        var response = await client3.ListBucketsAsync();
        Debug.Log("Region OK");

        Debug.Log("Region - Number of buckets: " + response.Buckets.Count);


        foreach (S3Bucket bucket in response.Buckets)
        {
            Debug.Log("Region - You own Bucket with name: " + bucket.BucketName);
        }
    }
}

默认情况下,共享AWS凭据文件位于主目录中的.AWS目录中,名为credentials
。。我怀疑UWPYeah上的情况会是这样,我怀疑因为这些文件在我应用程序的“本地文件夹”之外,我无法访问它们。。。或者可能是我的项目设置中的配置问题?我们再来一次,在没有给出任何线索、建议或批评的情况下进行投票。谢谢:)