使用Unity C从Amazon S3下载并保存文件#

时间:2018-03-01 19:26:11

标签: c# amazon-web-services amazon-s3

我正在关注S3的亚马逊教程,但我无法下载文件并将其保存到Streaming Resources。相反,我正在下载文件内容。

ResultText.text = string.Format("fetching {0} from bucket {1}", SampleFileName, S3BucketName);
Client.GetObjectAsync(S3BucketName, SampleFileName, (responseObj) =>
{
    string data = null;
    var response = responseObj.Response;
    if (response.ResponseStream != null)
    {
        using (StreamReader reader = new StreamReader(response.ResponseStream))
        {
            data = reader.ReadToEnd();
        }

        ResultText.text += "\n";
        ResultText.text += data;
    }
});

我知道我应该将response.ResponseStream转换为文件,但我尝试了许多不同的解决方案,但我无法使其正常工作。

1 个答案:

答案 0 :(得分:1)

  

我知道我应该将response.ResponseStream转换为File但....

您不会将其转换为您从中读取的文件并将内容写入文件。有很多内置的方法可以帮助解决这个问题,但步骤很简单。打开/创建文件流,然后从响应流写入文件流。

if (response.ResponseStream != null)
{
    using (var fs = System.IO.File.Create(@"c:\some-folder\file-name.ext"))
    {
        byte[] buffer = new byte[81920];
        int count;
        while ((count = response.ResponseStream.Read(buffer, 0, buffer.Length)) != 0)
            fs.Write(buffer, 0, count);
        fs.Flush();
    }
}