PUT /teams/{teamId}/files/{fileId}/replace/upload/{versionId}
Enviar os bytes da nova versão (passo 2/3, proxy)
- Acesso: Login
- Serviço:
https://files-api.axuz.net
Autenticação aceita
sessionCookie— Sessão plena Axuz (cookie de sessão da casa). Sessão restrita é 403 enrollment_required.bearerSession— JWT de acesso da sessão em `Authorization: Bearer`.
Equivalente ao /files/upload/{fileId} do fluxo de criação, mas escopado a UMA versão: GetFileVersionByID recebe o userID, de modo que só quem reservou a versão em replace/init envia bytes.
O corpo é limitado a size_bytes + 1 por MaxBytesReader e o tamanho recebido tem que casar exatamente com o declarado no init (senão 400). Com backend remoto a API termina o PUT e re-streama pro bucket; com backend local grava em LOCAL_UPLOAD_DIR.
Clientes com backend S3/R2 normalmente NÃO chamam esta rota — o replace/init devolveu um presigned PUT direto no bucket.
Fonte: internal/drive/handler_replace.go:126.
Parâmetros
| Nome | Em | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
teamId | path | string | sim | |
fileId | path | string | sim | |
versionId | path | string | sim | ID da row reservada em |
Respostas
200
Bytes aceitos. Corpo: {ok: true, bytes: <int>}; o backend local acrescenta path (caminho no disco da instância).
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
ok | boolean | não | |
bytes | integer | não | |
path | string | não | Só no backend local — caminho no disco da instância. |
400
fileId/versionId inválido, tamanho declarado ≤ 0, ou size mismatch
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
error | string | sim | Chave/slug do erro |
message | string | não |
401
Sem credencial valida
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
error | string | sim |
404
Versão-alvo não encontrada para este usuário/arquivo/team
429
Limite de requisições excedido.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
error | string | sim |
500
Erro interno. Tente de novo com backoff; reporte o X-Request-Id.
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
error | string | sim |
502
Storage remoto recusou o objeto
Exemplos
O "Try it" está desligado nesta referência. Use os exemplos com a sua credencial de teste.
curl
curl -sS -X PUT 'https://files-api.axuz.net/teams/TEAM_ID/files/FILE_ID/replace/upload/VERSION_ID' \
-H "Authorization: Bearer $AXUZ_TOKEN"Node.js
const res = await fetch("https://files-api.axuz.net/teams/TEAM_ID/files/FILE_ID/replace/upload/VERSION_ID", {
method: 'PUT',
headers: {
Authorization: `Bearer ${process.env.AXUZ_TOKEN}`,
},
});
if (!res.ok) throw new Error(`HTTP ${res.status}: ${await res.text()}`);
console.log(await res.json());Python
import os
import requests
res = requests.request(
"PUT",
"https://files-api.axuz.net/teams/TEAM_ID/files/FILE_ID/replace/upload/VERSION_ID",
headers={
"Authorization": f"Bearer {os.environ['AXUZ_TOKEN']}",
},
timeout=30,
)
res.raise_for_status()
print(res.json())