上传图像异步到亚马逊S3

时间:2015-07-17 17:39:46

标签: asp.net-mvc-4 amazon-s3 aws-sdk

如何将图像上传到S3异步,我的意思是客户端不必等到所有图像上传完成后才能将用户带到表格的下一页。

我首先通过ajax将图像上传到临时目录中的服务器,然后当用户提交表单时,我会将相同的图像上传到S3,这一步从temp到S3需要一段时间。

现在我有了这个逻辑和工作:

//Upload img to S3
    AwsHelper.UploadImage(sourceFileSmall, targetFileSmall, photo.FileNameSmall, ConfigurationManager.AppSettings["AWS_bucket_PropertyImg"]);

//delete the temp local img after upload
    System.IO.File.Delete(sourceFileSmall);

//I call this method several more times, one for each image size

但这需要一段时间,因为取决于它需要多达1分钟的数量。

我确实尝试将此代码包含在:

    Task.Factory.StartNew(() => { 
        AwsHelper.UploadImage(sourceFileSmall, targetFileSmall, photo.FileNameSmall,    ConfigurationManager.AppSettings["AWS_bucket_PropertyImg"]);
        System.IO.File.Delete(sourceFileSmall);
        //I call this method several more times, one for each image size
    });

它确实延迟了异步执行代码并且用户被带到表单的下一步但由于某种原因它不上传文件而且我也没有任何例外。

1 个答案:

答案 0 :(得分:1)

TransferUtility class可以向Amazon S3提供异步上传/下载。