API REST

GET /v1/drives/{sg}/nodes/{node_id}

Busca um nó do drive

GET /v1/drives/{sg}/nodes/{node_id}

O metadado de um arquivo pronto mais o nome decifrado.

Parâmetros de caminho #

  • sg string obrigatório

    O security group (o drive).

  • node_id string obrigatório

    O id do nó do arquivo.

Respostas #

  • 200 Successful Response

    • node object obrigatório

      Um arquivo ou pasta de um workspace (`docs/PROTOCOL.md §9`) — o índice que o cofre tem dele, nunca o conteúdo. Todo nó tem a própria DEK, embrulhada para o security group em `encrypted_keys`; o nome fica selado em `encrypted_name` até `name_of` abri-lo sob demanda (fazer isso para uma página inteira significaria um AES-GCM por linha que ninguém pediu). Uma pasta não tem conteúdo nem campos de upload; o `size` de um arquivo é o que o cofre mediu, nunca só o declarado.

    • name object
  • 400 O cofre recusou a requisição como inválida.

    • error object obrigatório

      O corpo de toda resposta não-2xx: o que deu errado, para um programa e para uma pessoa.

  • 401 Sem certificado de cliente, ou a sessão do SDK foi recusada ou expirou (`session_expired`).

    • error object obrigatório

      O corpo de toda resposta não-2xx: o que deu errado, para um programa e para uma pessoa.

  • 402 O workspace não tem crédito para isto.

    • error object obrigatório

      O corpo de toda resposta não-2xx: o que deu errado, para um programa e para uma pessoa.

  • 403 CN não permitido, permissão negada, ou sem chave para o security group do dado (`group_key_unavailable`).

    • error object obrigatório

      O corpo de toda resposta não-2xx: o que deu errado, para um programa e para uma pessoa.

  • 404 Não encontrado — também um nó lido sob um grupo ao qual não pertence.

    • error object obrigatório

      O corpo de toda resposta não-2xx: o que deu errado, para um programa e para uma pessoa.

  • 409 Uma versão pendente ou mais nova, um replay, ou um upload que não chegou ao armazenamento.

    • error object obrigatório

      O corpo de toda resposta não-2xx: o que deu errado, para um programa e para uma pessoa.

  • 422 O corpo ou a query falhou na validação (`invalid_request`).

    • error object obrigatório

      O corpo de toda resposta não-2xx: o que deu errado, para um programa e para uma pessoa.

  • 429 Limite de taxa, depois de o backoff do SDK desistir.

    • error object obrigatório

      O corpo de toda resposta não-2xx: o que deu errado, para um programa e para uma pessoa.

  • 500 Um envelope não abriu (`crypto_error`, sem detalhe de propósito).

    • error object obrigatório

      O corpo de toda resposta não-2xx: o que deu errado, para um programa e para uma pessoa.

  • 502 O cofre falhou, ou respondeu fora do protocolo (`protocol_error`).

    • error object obrigatório

      O corpo de toda resposta não-2xx: o que deu errado, para um programa e para uma pessoa.

curl --cert client.crt --key client.key \
  -X GET "https://api.imgexam.com/v1/drives/<sg>/nodes/<node_id>" \
  -H "Content-Type: application/json"
{
  "node": {
    "node_id": "string",
    "workspace_id": "string",
    "security_group_id": "string",
    "kind": "file",
    "status": "pending",
    "exam_id": {},
    "parent_id": {},
    "mode": {},
    "media_kind": {},
    "declared_size": {},
    "size": {},
    "mime_type": {},
    "encrypted_name": {
      "salt": "string",
      "nonce": "string",
      "ciphertext": "string"
    },
    "encrypted_keys": {},
    "storage_path": {},
    "optimized_variants": [
      {
        "kind": "string",
        "storage_bucket": "string",
        "storage_path": "string",
        "storage_size": 0,
        "storage_mime_type": "string",
        "created_at": "string"
      }
    ],
    "processing_status": {},
    "processing_error": {},
    "total_size": {},
    "created_by": "string",
    "created_at": "string",
    "completed_at": {},
    "is_deleted": false
  },
  "name": {}
}