Eliminar varios objetos blob o una carpeta
curl --request DELETE \
--url https://blob.vertracloud.app/v1/objects \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ids": [
"<string>"
],
"prefix": "<string>"
}
'const options = {
method: 'DELETE',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({ids: ['<string>'], prefix: '<string>'})
};
fetch('https://blob.vertracloud.app/v1/objects', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://blob.vertracloud.app/v1/objects"
payload = {
"ids": ["<string>"],
"prefix": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.delete(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://blob.vertracloud.app/v1/objects"
payload := strings.NewReader("{\n \"ids\": [\n \"<string>\"\n ],\n \"prefix\": \"<string>\"\n}")
req, _ := http.NewRequest("DELETE", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"response": {
"deleted": [
"0b6f7c1e-3d2a-4f5b-9a8c-1d2e3f4a5b6c"
],
"not_found": [],
"remaining": false
}
}
Objetos
Eliminar varios objetos blob o una carpeta
Elimina hasta 1.000 objetos blob por ID, o todo lo que haya bajo un prefijo de carpeta. Devuelve lo que se eliminó.
DELETE
/
v1
/
objects
Eliminar varios objetos blob o una carpeta
curl --request DELETE \
--url https://blob.vertracloud.app/v1/objects \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"ids": [
"<string>"
],
"prefix": "<string>"
}
'const options = {
method: 'DELETE',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({ids: ['<string>'], prefix: '<string>'})
};
fetch('https://blob.vertracloud.app/v1/objects', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://blob.vertracloud.app/v1/objects"
payload = {
"ids": ["<string>"],
"prefix": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.delete(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://blob.vertracloud.app/v1/objects"
payload := strings.NewReader("{\n \"ids\": [\n \"<string>\"\n ],\n \"prefix\": \"<string>\"\n}")
req, _ := http.NewRequest("DELETE", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"response": {
"deleted": [
"0b6f7c1e-3d2a-4f5b-9a8c-1d2e3f4a5b6c"
],
"not_found": [],
"remaining": false
}
}
Elimina hasta 1.000 objetos en una sola llamada, por
ids o por prefix de carpeta. Envía exactamente uno de los dos. La
eliminación es permanente. Cuando hay más objetos que coinciden con un prefix, remaining es true; vuelve a hacer la
llamada hasta que sea false.
Ámbito: blob:write.
string[]
IDs de objeto, hasta 1.000. No lo envíes junto con
prefix.string
Elimina cada objeto cuya ruta empiece por este prefijo de carpeta, hasta 1.000 por llamada. No lo envíes junto con
ids.string
El ID del workspace, cuando el blob pertenece a un workspace. La petición actúa sobre el blob del propietario del
workspace y necesita el permiso
blob:read del workspace (blob:manage en las rutas que modifican datos). Omítelo
para actuar sobre tu propio blob.Ejemplo de petición
curl -X DELETE "https://blob.vertracloud.app/v1/objects" \
-H "Authorization: Bearer $VERTRA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prefix":"tmp/"}'
Respuesta
object
{
"response": {
"deleted": [
"0b6f7c1e-3d2a-4f5b-9a8c-1d2e3f4a5b6c"
],
"not_found": [],
"remaining": false
}
}
Respuestas de error
string
El código de error que indica el motivo del fallo. Valores posibles:
AUTH_TOKEN_MISSING(401): No se envió la cabeceraAuthorization.API_KEY_INVALID(401): La clave de API no existe, fue revocada o su secreto no coincide.API_KEY_SCOPE_DENIED(403): La clave no tiene el ámbito que necesita esta ruta (blob:readoblob:write);details.requiredlo indica.WORKSPACE_PERMISSION_DENIED(403): Solo conworkspace_id: no eres miembro, o tu rol no tiene el permiso de blob.WORKSPACE_NOT_FOUND(404): Solo conworkspace_id: no existe un workspace con ese ID, o no eres miembro.VALIDATION_ERROR(400): Un parámetro o un campo del cuerpo no superó la validación.details.pathindica el campo.
{
"code": "AUTH_TOKEN_MISSING"
}
{
"code": "API_KEY_SCOPE_DENIED"
}
{
"code": "WORKSPACE_NOT_FOUND"
}
{
"code": "VALIDATION_ERROR"
}
Última modificación el 28 de octubre de 2026