diff --git a/README.md b/README.md new file mode 100644 index 0000000..260f3b0 --- /dev/null +++ b/README.md @@ -0,0 +1,52 @@ +# Operaciones con URL prefirmadas en S3 (PUT y GET) + +## 🟢 PUT (subida de archivo) + +- Objetivo: subir o sobrescribir un objeto en **:contentReference[oaicite:0]{index=0}** +- Método HTTP: `PUT` +- Uso: cliente (Java, Angular, Postman) envía el fichero a la URL prefirmada + +### Flujo +1. Backend genera URL prefirmada (PUT) +2. Cliente realiza `PUT` a esa URL +3. S3 almacena el objeto en la `key` indicada + +### Requisitos clave +- Método debe ser `PUT` +- Mismo `Content-Type` si fue firmado +- URL válida y no expirada + +--- + +## 🔵 GET (descarga de archivo) + +- Objetivo: descargar o leer un objeto desde **:contentReference[oaicite:1]{index=1}** +- Método HTTP: `GET` +- Uso: cliente accede directamente al recurso mediante URL firmada + +### Flujo +1. Backend genera URL prefirmada (GET) +2. Cliente realiza `GET` a esa URL +3. S3 devuelve el archivo + +### Requisitos clave +- Método debe ser `GET` +- URL válida y no expirada +- No se envía body + +--- + +## ⚖️ Diferencia esencial + +| Operación | Método | Acción | Body | +|----------|--------|--------|------| +| PUT | PUT | Subir / sobrescribir | Sí (archivo) | +| GET | GET | Descargar | No | + +--- + +## 🧠 Idea clave + +- PUT = escribir en S3 +- GET = leer desde S3 +- La URL prefirmada **no ejecuta nada por sí sola**, solo autoriza la operación HTTP \ No newline at end of file