Task Delete(Amazon.S3.Model.S3Object item) { var request = new Amazon.S3.Model.DeleteObjectRequest { BucketName = item.BucketName, Key = item.Key }; return(S3Client.DeleteObjectAsync(request)); }
async Task <IMailMessage> GetObject(Amazon.S3.Model.S3Object item) { var request = new Amazon.S3.Model.GetObjectRequest { Key = item.Key, BucketName = item.BucketName }; var response = await S3Client.GetObjectAsync(request); var sesMessage = MimeMessage.Load(response.ResponseStream); return(Account.CreateMailMessage(sesMessage, Account.S3Bucket)); }
async Task Fetch(Amazon.S3.Model.S3Object item) { LogInfo("Downloading object " + item.Key); var message = await GetObject(item); LogInfo("Downloaded object " + item.Key); using (var scope = Database.CreateTransactionScope()) { await Database.Save(message); LogInfo("Deleting object " + item.Key); await Delete(item); LogInfo("Deleted object " + item.Key); scope.Complete(); } }