Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.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 AWS SDK.NET的问题_Amazon Web Services_Amazon S3_Aws Sdk_Aws Sdk Net - Fatal编程技术网

Amazon web services AWS SDK.NET的问题

Amazon web services AWS SDK.NET的问题,amazon-web-services,amazon-s3,aws-sdk,aws-sdk-net,Amazon Web Services,Amazon S3,Aws Sdk,Aws Sdk Net,我正在尝试从我的bucket中检索图像以发送到我的移动应用程序,我目前有直接访问AWS的设备,但是我正在添加一层安全性,让我的应用程序(IOS和Android)现在向我的服务器发出请求,然后服务器将使用DynamoDB和S3数据进行响应 我试图遵循AWS for.Net提供的文档和代码示例,它们在DynamoDB中无缝工作,我在S3中遇到了问题 我的问题是,如果我没有提供凭据,则会出现以下错误: 无法从EC2实例元数据服务检索凭据 这是预期的,因为我已设置IAM角色,并且只希望我的应用程序和此

我正在尝试从我的bucket中检索图像以发送到我的移动应用程序,我目前有直接访问AWS的设备,但是我正在添加一层安全性,让我的应用程序(IOS和Android)现在向我的服务器发出请求,然后服务器将使用DynamoDB和S3数据进行响应

我试图遵循AWS for.Net提供的文档和代码示例,它们在DynamoDB中无缝工作,我在S3中遇到了问题

我的问题是,如果我没有提供凭据,则会出现以下错误:

无法从EC2实例元数据服务检索凭据

这是预期的,因为我已设置IAM角色,并且只希望我的应用程序和此服务器(将来,仅此服务器)能够访问存储桶

但是,当我提供凭据时,就像我为DynamoDB提供凭据一样,我的服务器会永远等待,并且不会收到来自AWS的任何响应

这是我的简历:

当我不提供凭据时,这是引发凭据错误的同一行。这里有我遗漏的东西吗


任何帮助都将不胜感激。

我怀疑AWS.NET SDK中有一些ISSE,特别是对S3的异步调用

对dynamoDB的异步调用工作得很好,但S3调用永远挂起

解决我问题的方法是简单地删除异步功能(即使在AWS文档中,异步调用也应该被使用)

之前:

using (GetObjectResponse response = await client.GetObjectAsync(request))
之后:

using (GetObjectResponse response =  myClient.GetObject(request))

希望这能帮助其他遇到此问题的人。

使用最新的SDK,一切都是异步的。没有同步对应项。
using (GetObjectResponse response = await client.GetObjectAsync(request))
using (GetObjectResponse response =  myClient.GetObject(request))