> ## 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.

# Certificazione dello storage S3-compatibile

> Policy di qualificazione per prodotti non AWS che usano l'adapter S3 di CaseBender

Un'API S3-compatibile non è automaticamente equivalente ad AWS S3 e non è
automaticamente supportata. Certifica ciascun prodotto, versione esatta, modalità endpoint,
bucket policy e release CaseBender in modo indipendente.

## Contratto richiesto

La matrice della release è autorevole. Un candidato di solito necessita di:

* HTTPS verificato, incluso il percorso della CA privata distribuita;
* accesso a un bucket esistente senza permesso di amministrazione del bucket;
* upload, HEAD/metadata, download, integrità SHA-256, copy, pagination,
  create condizionale, versioning, delete e comportamento dei delete-marker;
* crittografia server-side;
* retention e legal hold quando richiesto per il profilo `records`; e
* cleanup limitato a un prefisso di test univoco e alle versioni esatte.

Non inferire le capacità da un livello API S3 dichiarato. Le write condizionali,
gli header di checksum, gli ID di versione, la semantica di copy, i delete marker, Object Lock e
il comportamento della CA privata differiscono tra prodotti e versioni.

## Procedura di qualificazione

1. Registra il nome del prodotto e la versione esatta del server, i digest di revisione/immagine
   CaseBender, la modalità endpoint, il digest della CA, la bucket policy e la policy di identità.
2. Usa bucket di test dedicati pre-creati o un prefisso dedicato.
3. Esegui dalla stessa rete, DNS, proxy, CA e contesto di identità del web
   e del worker.
4. Imposta ciascun flag di capability in modo veritiero. `false` significa saltato e non può soddisfare
   un'operazione richiesta della matrice.
5. Esegui il ciclo di vita applicativo upload/quarantine/scan/promote/download/delete.
6. Esercita i workflow di backup, ripristino, migrazione, rollback, retention e legal-hold
   richiesti dal cliente.
7. Sanitizza, calcola l'hash, rivedi e firma il bundle di evidenze.

Per 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
```

Il contratto smoke generale è:

```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
```

Lo script generale è supplementare e non copre il gate di release completo
per la versione esatta.

## Regole sulle evidenze

Usa `scripts/storage/certification-evidence.template.json` e valida con:

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

Le evidenze devono nominare una versione target esatta e includere un digest. Non devono
contenere access key, session token, connection string, chiavi private, URL
firmati, nomi di oggetti del cliente o contenuti degli oggetti.

## Limitazione dell'emulator

`./scripts/storage/run-emulator-contracts.sh s3` verifica l'adapter S3 contro
LocalStack. Crea un artefatto di emulator che dichiara esplicitamente di non essere
certificazione live. Non riutilizzare mai quel risultato per Ceph RGW, MinIO, AWS S3 o un altro
prodotto S3-compatibile.

## Controllo delle modifiche

Riqualifica dopo qualsiasi upgrade del server, modifica di gateway/configurazione, rotazione
TLS/CA, modifica di identità/policy, modifica di versioning/Object Lock, modifica di rete/proxy,
release CaseBender o aggiornamento dell'SDK di storage.

Vedi [Selezione e certificazione del provider](/it/deployment/storage-provider-selection)
e [OpenShift ODF e Ceph RGW](/it/deployment/storage-openshift-odf-rgw).
