簡體   English   中英

使用AWS .NET SDK將文件上載到S3存儲桶時,任務被取消了異常?

[英]Task was cancelled exception when uploading file to S3 bucket using AWS .NET SDK?

我在Asp.Net Core 2應用程序中有WebApi方法,該應用程序以base64 format從Angular接收文件。 我需要將這些文件存儲在AWS S3 Bucket ,我在亞馬遜官方文檔上找到了代碼,但它對我不起作用。

我得到A task was cancelled在幾秒鍾A task was cancelled異常。

這是我的代碼:

public async Task UploadFileAsync(string base64Image)
{
    try
    {
        var fileTransferUtility = new TransferUtility(_s3Client);

        var image = Convert.FromBase64String(base64Image);
        MemoryStream memStream = new MemoryStream();
        BinaryFormatter binForm = new BinaryFormatter();
        memStream.Write(image, 0, image.Length);
        memStream.Seek(0, SeekOrigin.Begin);

        await fileTransferUtility.UploadAsync(memStream, BucketName, KeyName);
        Debug.WriteLine("Upload completed");
    }
    catch (AmazonS3Exception e)
    {
        Debug.WriteLine("Error encountered on server. Message:'{0}' when writing an object", e.Message);
    }
    catch (Exception e)
    {
        Debug.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
    }

}

任何想法?

我不知道Angular中的工作原理如何,但是在asp.net核心api任務中的常規http請求可以取消,原因如下:

  1. 超時(默認為100秒)
  2. 執行異步方法而不是等待它
  3. 執行async void方法
  4. 在不同的任務/線程中運行作業而不是等待它完成

實際上2-4是相同的事情:執行工作就像點火一樣。 原始任務完成和DI處理所有創建的類型和_s3Client,我相信,其中之一。 這會導致在_s3Client上啟動的所有工作都被取消。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM