В настоящее время я пытаюсь поместить сторонние данные API в корзину S3 с помощью функции C # AWS Lambda.Данные от стороннего производителя находятся в zip-файле, который я смог сохранить локально, поэтому я предполагаю, что он работает так, как мне нужно.Следующий шаг - выгрузить эти данные в корзину S3, но через поток, а не сохранять файл локально, загружать его и т. Д.
public static async void PutObjectAsync()
{
try
{
using (var client = new AmazonS3Client(Amazon.RegionEndpoint.EUWest2))
{
var ms = new MemoryStream();
GetStream().CopyTo(ms); //GetStream() returns the api data stream (Stream object).
var request = new PutObjectRequest()
{
BucketName = "*BUCKETNAME*",
Key = "data.zip",
InputStream = ms
};
var response = await client.PutObjectAsync(request);
}
}
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);
}
Console.ReadKey();
}
}
Я получаю ссылку на объект, не установленную для ссылки на ошибку объекта наВызов функции PutObjectAsync.Я проверил запрос, и поток памяти, кажется, загружен как ожидалось от метода CopyTo.Я знаю, что у блоков есть проблемы с файлами размером более 5 МБ, но размер zip-файла намного меньше 5 МБ.
Это моя первая лямбда-функция, поэтому любые советы будут приветствоваться.Заранее спасибо.