Чтение содержимого текстового файла из корзины S3 с использованием S3 Url - PullRequest
1 голос
/ 30 апреля 2019

Необходимо прочитать содержимое текстового файла, который загружен в корзину AWS S3. У меня есть URL для файла, расположенного в ведре S3. Может кто-нибудь, пожалуйста, помогите мне прочитать содержание текстового файла, используя S3 Url.

Я знаю, что мы можем читать Данные, используя ResponseStream, но хотели бы прочитать их, используя Url / Path. Нужно создать AWS лямбду, используя ядро ​​.net. Ниже код показывает, как его читать, используя responsestream

using (GetObjectResponse response = await _client.GetObjectAsync(requestGet))
using (Stream responseStream = response.ResponseStream)
using (StreamReader reader = new StreamReader(responseStream))

1 Ответ

0 голосов
/ 01 мая 2019

AWS .Net SDK - ответ на ваш вопрос:

-Выполнить метод getObject, указав в запросе имя сегмента и ключ объекта.

- Выполнить один из методов GetObjectResponse для обработки потока.

Ниже приведен пример того же от AWS ссылка :

using Amazon.S3;
using Amazon.S3.Model;
using System;
using System.IO;
using System.Threading.Tasks;

namespace Amazon.DocSamples.S3
{
    class GetObjectTest
    {
        private const string bucketName = "*** bucket name ***";
        private const string keyName = "*** object key ***";
        // Specify your bucket region (an example region is shown).
        private static readonly RegionEndpoint bucketRegion = RegionEndpoint.USWest2;
        private static IAmazonS3 client;

        public static void Main()
        {
            client = new AmazonS3Client(bucketRegion);
            ReadObjectDataAsync().Wait();
        }

        static async Task ReadObjectDataAsync()
        {
            string responseBody = "";
            try
            {
                GetObjectRequest request = new GetObjectRequest
                {
                    BucketName = bucketName,
                    Key = keyName
                };
                using (GetObjectResponse response = await client.GetObjectAsync(request))
                using (Stream responseStream = response.ResponseStream)
                using (StreamReader reader = new StreamReader(responseStream))
                {
                    string title = response.Metadata["x-amz-meta-title"]; // Assume you have "title" as medata added to the object.
                    string contentType = response.Headers["Content-Type"];
                    Console.WriteLine("Object metadata, Title: {0}", title);
                    Console.WriteLine("Content type: {0}", contentType);

                    responseBody = reader.ReadToEnd(); // Now you process the response body.
                }
            }
            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);
            }
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...