示例#1
0
        Task Delete(Amazon.S3.Model.S3Object item)
        {
            var request = new Amazon.S3.Model.DeleteObjectRequest {
                BucketName = item.BucketName, Key = item.Key
            };

            return(S3Client.DeleteObjectAsync(request));
        }
示例#2
0
        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));
        }
示例#3
0
        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();
            }
        }