AWS C # не может понять, как загрузить поток zip в корзину S3 - PullRequest
0 голосов
/ 26 августа 2018

В настоящее время я пытаюсь поместить сторонние данные 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 МБ.

Это моя первая лямбда-функция, поэтому любые советы будут приветствоваться.Заранее спасибо.

1 Ответ

0 голосов
/ 27 августа 2018

Как указано в комментариях, AWS требует учетные данные, чтобы разрешить доступ к S3 Bucket.К сожалению, в документации не упоминается, что они являются обязательными и по умолчанию ищутся с диска, как описано в https://stackoverflow.com/a/43243290/784908.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...