Excluir vários objetos de blob ou uma pasta
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
Excluir vários objetos de blob ou uma pasta
Exclui até 1.000 objetos de blob pelo ID, ou tudo sob um prefixo de pasta. Retorna o que foi excluído.
DELETE
/
v1
/
objects
Excluir vários objetos de blob ou uma pasta
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
}
}
Exclui até 1.000 objetos em uma chamada, seja por
ids ou por prefix de pasta. Envie exatamente um dos dois. A exclusão é permanente. Quando há mais objetos que correspondem a um prefix, remaining é true; chame de novo até que seja false.
Escopo: blob:write.
string[]
IDs de objetos, até 1.000. Não envie junto com
prefix.string
Exclui todos os objetos cujo caminho começa com este prefixo de pasta, até 1.000 por chamada. Não envie junto com
ids.string
O ID do workspace, quando o blob pertence a um workspace. A chamada atua sobre o blob do proprietário do workspace e exige a permissão
blob:read do workspace (blob:manage nas rotas que alteram dados). Deixe de fora para atuar sobre o seu próprio blob.Exemplo de requisição
curl -X DELETE "https://blob.vertracloud.app/v1/objects" \
-H "Authorization: Bearer $VERTRA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prefix":"tmp/"}'
Resposta
object
{
"response": {
"deleted": [
"0b6f7c1e-3d2a-4f5b-9a8c-1d2e3f4a5b6c"
],
"not_found": [],
"remaining": false
}
}
Respostas de erro
string
O código de erro que indica o motivo da falha. Valores possíveis:
AUTH_TOKEN_MISSING(401): o cabeçalhoAuthorizationnão foi enviado.API_KEY_INVALID(401): a chave de API não existe, foi revogada ou o segredo não confere.API_KEY_SCOPE_DENIED(403): a chave não tem o escopo que esta rota exige (blob:readoublob:write);details.requiredinforma qual.WORKSPACE_PERMISSION_DENIED(403): somente comworkspace_id: você não é membro, ou o seu papel não tem a permissão de blob.WORKSPACE_NOT_FOUND(404): somente comworkspace_id: não existe workspace com esse ID, ou você não é membro.VALIDATION_ERROR(400): um parâmetro ou campo do corpo falhou na validação.details.pathinforma o campo.
{
"code": "AUTH_TOKEN_MISSING"
}
{
"code": "API_KEY_SCOPE_DENIED"
}
{
"code": "WORKSPACE_NOT_FOUND"
}
{
"code": "VALIDATION_ERROR"
}
Última modificação em 28 de outubro de 2026