Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

268
Visualizações
AWS Lambda C# Subir objeto a S3

Tengo una función de Lambda escrita en C# que intenta sin éxito cargar un objeto en un depósito de S3. Para fines de prueba, estoy convirtiendo la cadena de entrada en una matriz de bytes y la uso como contenido del objeto. Mi función de controlador se define a continuación:

 public void FunctionHandler(string input, ILambdaContext context) { IAmazonS3 client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1); byte[] bytes = new byte[input.Length * sizeof(char)]; Buffer.BlockCopy(input.ToCharArray(), 0, bytes, 0, bytes.Length); using (MemoryStream ms = new MemoryStream()) { foreach (Byte b in bytes) { ms.WriteByte(b); } PutObjectRequest request = new PutObjectRequest() { BucketName = "BUCKET_NAME", Key = "OBJECT_KEY", InputStream = ms }; client.PutObjectAsync(request); } }

La función se ejecuta sin errores, pero el objeto no se escribe en S3. Siento que podría tener algo que ver con el método PutObjectAsync , pero no estoy seguro. La interfaz IAmazonS3 incluye un método PutObject , pero cuando intento usar ese método recibo el siguiente error:

'IAmazonS3' no contiene una definición para 'PutObject'

¿Cuál es la mejor manera de cargar un objeto en un depósito de S3 en una función Lambda de C#?

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Esta es la función auxiliar que utilizo para colocar objetos de S3 en S3, desde una función lambda de C# (y funciona). Es posible que pueda usar esto como un punto de partida para el suyo.

No estoy seguro de por qué está convirtiendo su cadena en bytes, y en C#/Lambda necesita usar el método PutObjectAsync, no el método PutObject:

 public static async Task<bool> PutS3Object(string bucket, string key, string content) { try { using (var client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1)) { var request = new PutObjectRequest { BucketName = bucket, Key = key, ContentBody = content }; var response = await client.PutObjectAsync(request); } return true; } catch (Exception ex) { Console.WriteLine("Exception in PutS3Object:" + ex.Message); return false; } }
about 4 years ago · Santiago Trujillo Relatório

0

Debe aplicar await con Async

esperar cliente.PutObjectAsync(solicitud);

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda