Estoy tratando de subir una imagen a aws s3 usando React y express. mi código de React es,
axios
.put(putUrl, file[0], options)
.then(() => {
console.log("hello world");
})
.catch(err => {
console.log(err);
})
esta URL de colocación se generó expresando usando este código antes de llamar al código anterior. Y el archivo es la matriz de archivos agregados,
generatePutUrl(Key, ContentType).then(putUrl => {
res.send({putUrl});
console.log({putUrl});
}).catch(err => {
res.send(err);
});
las opciones tienen esto,
const options = {
params: {
Key: key,
ContentType: contentType
},
headers: {
'Content-Type':contentType
}
};
esta clave (por ejemplo, "ejemplo.png") tiene el nombre de la imagen y contentType es el tipo de imagen (por ejemplo, "imagen / png"). Cuando intento cargar una imagen, muestra esos dos mensajes de error y la imagen no se cargó en el depósito S3.
Error: Network Error
at createError (createError.js:16)
at XMLHttpRequest.handleError (xhr.js:84)
PUT <generatedUrl> net::ERR_NAME_NOT_RESOLVED
esta es el valor de la URL de S3 generada. cuando obtengo la URL generada desde el servidor expreso, la solicitud de obtención funciona bien. pero la solicitud muestra este error. ¿Cuál podría ser el error?
He actualizado la política de depósitos de esta manera. He añadido "s3: PutObject" entonces el error se había ido.
{
"Version": "2012-10-17",
"Id": "Policy1624878606419",
"Statement": [
{
"Sid": "Stmt1624878601700",
"Effect": "Allow",
"Principal": "*",
"Action": [
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::bucket-name/*"
}
]
}
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras