Я пытаюсь загрузить XML-файл размером 85 МБ в свое приложение Xamarin для iPad для iPad.Иногда загрузка завершается успешно, но в других случаях загрузка зависает где-то без каких-либо ошибок.Ход выполнения останавливается.
Версия AWS SDK:
AWSSDK.S3 3.3.20.4
AWSSDK.Core 3.3.24.8
Я пробовал оба метода 1- TransferUtility2- GetObject.Вот мой код:
var clientRequest = new AmazonS3Client(AWSAccessKey,
AWSSecretKey,
Amazon.RegionEndpoint.USEast1);
try
{
GetObjectRequest request = new GetObjectRequest
{
BucketName = AWSBucketName,
Key = Path + "File1.xml"
};
using (GetObjectResponse response = await clientRequest.GetObjectAsync(request))
{
response.WriteObjectProgressEvent += displayDownloadProgress;
await response.WriteResponseStreamToFileAsync(destPath, false);
}
}
catch (AmazonS3Exception e)
{
Console.WriteLine("Error encountered ***. Message:'{0}' when writing an object", e.Message);
}
catch (Exception e)
{
Console.WriteLine("Unknown encountered on server. Message:'{0}' when writing an object", e.Message);
}
Я попробовал оба метода по одному.
var utility = new TransferUtility(cas.AWSAccessKey,
cas.AWSSecretKey,
Amazon.RegionEndpoint.USEast1);
TransferUtilityDownloadRequest dr = new TransferUtilityDownloadRequest();
dr.BucketName = AWSBucketName;
dr.Key = Path + "File1.xml";
dr.FilePath = destPath;
dr.WriteObjectProgressEvent += displayDownloadProgress;
await utility.DownloadAsync(dr);
public void displayDownloadProgress(object sender, WriteObjectProgressArgs args)
{
Debug.WriteLine("Download Progress: " + (args.PercentDone));
InvokeOnMainThread(() =>
{
BTProgressHUD.ShowContinuousProgress("Download Progress: " + args.PercentDone.ToString() + "%", ProgressHUD.MaskType.Gradient);
});
if (args.PercentDone >= 100)
{
BTProgressHUD.Dismiss();
}
}