Tengo un proyecto Reactjs creado usando create-react-app y un cubo aws s3 en el que he guardado algunas imágenes que quiero mostrar en mi sitio web.
He creado un aws.js donde configuro y hago la llamada así
import { S3Client } from "@aws-sdk/client-s3"; import { ListObjectsV2Command } from "@aws-sdk/client-s3"; const REGION = 'eu-central-1' const credentials = { accessKeyId: accessKeyId, privateKeyId: privateKeyId, } const config = { region: REGION, credentials: credentials, } const bucketName = { Bucket: bucketName, } const s3Client = new S3Client(config); export const run = async () => { try{ const command = new ListObjectsV2Command(bucketName); const data = await s3Client.send(command); console.log("SUCCESS\n", data); } catch(err) { console.log("ERROR\n", err); } }También creé un archivo .env donde guardé las claves con y sin el prefijo REACT_APP pero el resultado es el mismo. Invalidación de las credenciales.
Para las credenciales, verifiqué y volví a verificar 10 veces y también creé un nuevo usuario y usé esas claves, pero nada. También configuré CORS para permitir el acceso desde mi host local.
¿Qué estoy haciendo mal? ¿Y hay una documentación completa de AZ sobre qué usar los servicios de AWS? Incluyendo v3, api doc, configuración de credenciales y todo.
PD: es la primera vez que uso AWS, por lo que agradecería mucho algunos documentos. Gracias por adelantado
ACTUALIZACIÓN --- Traté de usar aws javascript sdk v2 y ahora funciona. Aquí está el código que usé para listar objetos dentro de un cubo
Pero solo funciona cuando utilicé AWS.config.update si pasé la configuración al depósito, todavía arrojaba un error
const AWS = require('aws-sdk'); AWS.config.update({ region: region, accessKeyId: accessKeyId, secretAccessKey: secretAccessKey }); let s3 = new AWS.S3() export const testFnc = () =>{ s3.listObjects({ Bucket: 'artgalleryszili.digital' }, (res, err) => { if(err){ console.log(err); } else{ console.log(res); } }) }