Amazon web services Unity UWP build can';在默认位置的共享凭据文件中找不到AWSCredentials
我正在使用Unity UWP和Amazon AWS进行一些测试(创建一个bucket、上传一个文件、列出bucket等) 当我在编辑器中播放它时,一切正常,但当我试图在UWP构建中查找我的AWS凭据时,却找不到它们。这是我的代码: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
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上的情况会是这样,我怀疑因为这些文件在我应用程序的“本地文件夹”之外,我无法访问它们。。。或者可能是我的项目设置中的配置问题?我们再来一次,在没有给出任何线索、建议或批评的情况下进行投票。谢谢:)