Panel de Control

Gestión de activos digitales · 13 May 2026

Servicio activo
Endpoints
3
Formatos de carga permitidas
PNG & GLB

Endpoints disponibles

POST
https://espinoza-s3.crythion.com/api/images/upload
Carga de activos agrupados por ID de producto.  ·  multipart/form-data  ·  images[] (PNG / GLB)  ·  product_id
const form = new FormData(); form.append("product_id", "123"); form.append("images[]", fileInput.files[0]); // PNG o GLB // form.append("images[]", fileInput.files[1]); // varios archivos const res = await fetch("https://espinoza-s3.crythion.com/api/images/upload", { method: "POST", body: form // sin Content-Type, el browser lo pone solo }); const data = await res.json(); // { status:"success", images:[{ name, url, size, mime }] }
use Illuminate\Support\Facades\Http; // $file = $request->file("imagen"); // UploadedFile de la request $response = Http::attach( "images[]", // campo array file_get_contents($file->getRealPath()), // binario $file->getClientOriginalName() // nombre original )->post("https://espinoza-s3.crythion.com/api/images/upload", [ "product_id" => "123", ]); $data = $response->json(); // $data["images"][0]["url"] => URL publica del archivo // $data["images"][0]["name"] => nombre generado en el servidor
POST
https://espinoza-s3.crythion.com/api/images/replace
Sustitucion y limpieza de archivos obsoletos.  ·  multipart/form-data  ·  images[] (PNG / GLB)  ·  product_id  ·  old_files[]
const form = new FormData(); form.append("product_id", "123"); form.append("old_files[]", "20240101_abc12345.png"); // nombre a eliminar form.append("images[]", fileInput.files[0]); // archivo nuevo const res = await fetch("https://espinoza-s3.crythion.com/api/images/replace", { method: "POST", body: form }); const data = await res.json(); // { status:"success", product_id, deleted:[], images:[...] }
use Illuminate\Support\Facades\Http; $file = $request->file("imagen"); // UploadedFile $response = Http::attach( "images[]", file_get_contents($file->getRealPath()), $file->getClientOriginalName() )->post("https://espinoza-s3.crythion.com/api/images/replace", [ "product_id" => "123", "old_files[]" => "20240101_abc12345.png", // archivo a borrar ]); $data = $response->json(); // $data["deleted"] => array con los archivos eliminados // $data["images"][0]["url"] => URL publica del nuevo archivo
POST
https://espinoza-s3.crythion.com/api/images/delete
Eliminacion fisica de un recurso especifico.  ·  JSON body  ·  filename  ·  product_id
const res = await fetch("https://espinoza-s3.crythion.com/api/images/delete", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ product_id: "123", filename: "20240101_abc12345.png" }) }); const data = await res.json(); // { status:"success", deleted:"20240101_abc12345.png" }
use Illuminate\Support\Facades\Http; // Http::post envia JSON por defecto en Laravel $response = Http::post("https://espinoza-s3.crythion.com/api/images/delete", [ "product_id" => "123", "filename" => "20240101_abc12345.png", ]); $data = $response->json(); // $data["deleted"] => nombre del archivo eliminado