Я хотел бы сохранить вложения в корзину AWS при получении электронного письма в учетной записи outlook.
Я пытался с HttpPostedFileBase
, который имеет InputStream
свойство.
Я попробовал как ниже
//successfully saving 'HttpPostedFileBase' files
using (IAmazonS3 s3client = new AmazonS3Client(_awsAccessKey, _awsSecretKey, RegionEndpoint.USEast1)) {
PutObjectRequest putObjectRequest = new PutObjectRequest {
BucketName = _bucketName,
CannedACL = S3CannedACL.PublicRead,
Key = string.Format("uploads/" + AssignedTaskId.ToString() + "/" + Path.GetFileName(postedFile.FileName)),
InputStream = postedFile.InputStream
};
s3client.PutObject(putObjectRequest);
}
//but cannot get from Outlook.MailItem attachments
Outlook.MailItem newEmail = null;
foreach (object collectionItem in inBoxItems) {
newEmail = collectionItem as Outlook.MailItem;
}
using (IAmazonS3 s3client = new AmazonS3Client(_awsAccessKey, _awsSecretKey, RegionEndpoint.USEast1)) {
PutObjectRequest putObjectRequest = new PutObjectRequest {
BucketName = _bucketName,
CannedACL = S3CannedACL.PublicRead,
Key = string.Format("uploads/{0}", newEmail.Attachments[i].FileName),
InputStream = newEmail.Attachments[i].InputStream
};
s3client.PutObject(putObjectRequest);
}
}
Получение ошибки:
«Вложение» не содержит определения для «InputStream», и невозможно найти доступный метод расширения «InputStream», принимающий первый аргумент типа «Вложение» (вам не хватает директивы using или ссылки на сборку?)