AWS S3 GetObjectAsync Hangs/Times 输出

AWS S3 GetObjectAsync Hangs/Times Out

注:回答我自己的问题,以后对别人有帮助。

我正在按照 official documentation 从 S3 存储桶中获取文本文件,但它挂起:

static async Task ReadObjectDataAsync()
{
    string responseBody = "";
    try
    {
        GetObjectRequest request = new GetObjectRequest
        {
            BucketName = bucketName,
            Key = keyName
        };
        //THIS NEXT LINE HANGS!!!!
        using (GetObjectResponse response = await client.GetObjectAsync(request)) 
        using (Stream responseStream = response.ResponseStream)
        using (StreamReader reader = new StreamReader(responseStream))
        {
            string title = response.Metadata["x-amz-meta-title"];

如何让它工作?

这个问题在这里有解决方案https://github.com/aws/aws-sdk-net/issues/152

我的问题是 运行 这个来自 WinForm 应用程序的示例。

Winform 应用程序 Main() 方法标有单线程单元属性 [STAThread]。这会导致异步失败。

要么删除 [STAThread] 属性,要么创建另一个没有它的 Main() 方法。