Docs / SDK / Go / Imágenes
Go — módulo Imágenes
Paquete github.com/webability/webability-go/image. Envuelve la API de Imágenes (/v1/image/*): subida, procesamiento bajo demanda y purga de caché.
Importar y crear el objeto
import (
"github.com/webability/webability-go/wa"
"github.com/webability/webability-go/image"
)
api := wa.New("tu-client-id", "tu-token-secreto")
img := image.New(api)
Get(path string)
GET /v1/image/{path}/{WxH}/{file.ext} — obtiene (y procesa) una imagen. Devuelve la respuesta cruda: el binario en Body y el tipo en el header Content-Type.
resp, err := img.Get("productos/800x600/zapatilla.jpg.webp")
if err != nil {
log.Fatal(err)
}
fmt.Println(resp.Header.Get("Content-Type")) // image/webp
os.WriteFile("zapatilla.webp", resp.Body, 0644)
Upload(path, filename string, file io.Reader)
POST /v1/image/{path} — sube una imagen original (multipart/form-data). Purga automáticamente las versiones cacheadas.
f, err := os.Open("zapatilla.jpg")
if err != nil {
log.Fatal(err)
}
defer f.Close()
out, err := img.Upload("productos/zapatilla.jpg", "zapatilla.jpg", f)
if err != nil {
log.Fatal(err)
}
fmt.Println(out.Path, out.Size, "bytes,", out.CachePurged, "versiones purgadas")
Delete(path string)
DELETE /v1/image/{path} — elimina el original y todas sus versiones cacheadas. Si path termina en "/", elimina la carpeta completa.
del, err := img.Delete("productos/zapatilla.jpg")
if err != nil {
log.Fatal(err)
}
fmt.Println("eliminados:", del.Total)
PurgeCache()
DELETE /v1/image — purga toda la caché de versiones procesadas (secondcache); los originales se conservan.
del, err := img.PurgeCache()
if err != nil {
log.Fatal(err)
}
fmt.Println("purgados:", del.DeletedSecondcache)
Referencia completa de la API HTTP (headers, códigos de error, formato de respuesta): /documentacion/imagenes.