> ## Documentation Index
> Fetch the complete documentation index at: https://docs.casebender.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Certificação de armazenamento compatível com S3

> Política de qualificação para produtos não AWS que usam o adaptador S3 do CaseBender

Uma API compatível com S3 não é automaticamente equivalente ao AWS S3 e não é
automaticamente suportada. Certifique cada produto, versão exata, modo de endpoint,
política de bucket e release do CaseBender de forma independente.

## Contrato exigido

A matriz da release é autoritativa. Um candidato normalmente precisa de:

* HTTPS verificado, incluindo o caminho da CA privada implantada;
* acesso a um bucket existente sem permissão de administração de bucket;
* upload, HEAD/metadata, download, integridade SHA-256, copy, paginação,
  create condicional, versionamento, delete e comportamento de delete-marker;
* criptografia no servidor;
* retenção e legal hold quando exigidos para o perfil `records`; e
* limpeza limitada a um prefixo de teste exclusivo e versões exatas.

Não infira capacidade a partir de um nível de API S3 anunciado. Writes condicionais,
headers de checksum, IDs de versão, semântica de copy, delete markers, Object Lock e
comportamento de CA privada diferem entre produtos e versões.

## Procedimento de qualificação

1. Registre o nome do produto e a versão exata do servidor, os digests de revisão/imagem
   do CaseBender, o modo de endpoint, o digest da CA, a política de bucket e a política de identidade.
2. Use buckets de teste dedicados pré-criados ou um prefixo dedicado.
3. Execute a partir do mesmo contexto de rede, DNS, proxy, CA e identidade do web
   e do worker.
4. Defina cada flag de capacidade de forma verdadeira. `false` significa ignorado e não pode satisfazer
   uma operação exigida da matriz.
5. Execute o ciclo de vida de upload/quarantine/scan/promote/download/delete da aplicação.
6. Exercite os fluxos de backup, restauração, migração, rollback, retenção e legal-hold
   exigidos pelo cliente.
7. Sanitize, calcule o hash, revise e assine o pacote de evidência.

Para Ceph RGW:

```bash theme={null}
STORAGE_TEST_ENDPOINT='https://<s3-compatible-host>' \
STORAGE_TEST_BUCKET='<dedicated-test-bucket>' \
AWS_REGION='<region>' \
STORAGE_TEST_CA_BUNDLE='<ca-file>' \
STORAGE_TEST_ODF_VERSION='<exact-odf-version-or-n-a>' \
STORAGE_TEST_CEPH_VERSION='<exact-product-version>' \
STORAGE_TEST_CAP_METADATA=true \
STORAGE_TEST_CAP_PAGINATION=true \
STORAGE_TEST_CAP_COPY=true \
STORAGE_TEST_CAP_CONDITIONAL_CREATE='<true-or-false>' \
STORAGE_TEST_CAP_VERSIONING='<true-or-false>' \
STORAGE_TEST_CAP_DELETE_MARKERS='<true-or-false>' \
STORAGE_TEST_CAP_ENCRYPTION=true \
STORAGE_TEST_CAP_OBJECT_LOCK='<true-or-false>' \
./scripts/storage/validate-ceph-rgw.sh
```

O contrato geral de smoke é:

```bash theme={null}
STORAGE_TEST_PROVIDER=s3 \
STORAGE_TEST_ENDPOINT='https://<s3-compatible-host>' \
STORAGE_TEST_BUCKET='<dedicated-test-bucket>' \
AWS_REGION='<region>' \
./scripts/storage/validate-storage.sh
```

O script geral é complementar e não cobre o gate completo
de release de versão exata.

## Regras de evidência

Use `scripts/storage/certification-evidence.template.json` e valide com:

```bash theme={null}
node scripts/storage/validate-certification-matrix.mjs \
  --release \
  --evidence '<sanitized-evidence.json>'
```

A evidência deve nomear uma versão-alvo exata e incluir um digest. Não deve
conter chaves de acesso, tokens de sessão, connection strings, chaves privadas, URLs
assinadas, nomes de objetos do cliente ou conteúdos de objetos.

## Limitação do emulador

`./scripts/storage/run-emulator-contracts.sh s3` verifica o adaptador S3 contra
o LocalStack. Ele cria um artefato de emulador que declara explicitamente que não é
certificação live. Nunca reutilize esse resultado para Ceph RGW, MinIO, AWS S3 ou outro
produto compatível com S3.

## Controle de mudanças

Requalifique após qualquer upgrade de servidor, alteração de gateway/configuração, rotação
de TLS/CA, alteração de identidade/política, alteração de versionamento/Object Lock, alteração
de rede/proxy, release do CaseBender ou atualização do SDK de armazenamento.

Consulte [Seleção e certificação de provedor](/pt-BR/deployment/storage-provider-selection)
e [OpenShift ODF e Ceph RGW](/pt-BR/deployment/storage-openshift-odf-rgw).
