Raccomandazioni per l'implementazione dell'API Swift REST
Seguire questi consigli quando si implementa l'API di Swift REST per l'utilizzo con StorageGRID.
Raccomandazioni per la gestione di oggetti inesistenti
Se l'applicazione verifica regolarmente l'esistenza di un oggetto in un percorso in cui non si prevede l'effettiva esistenza dell'oggetto, utilizzare il controllo di coerenza “Available”. Ad esempio, è necessario utilizzare il controllo di coerenza “Available” se l'applicazione esegue un'operazione HEAD in una posizione prima di eseguire un'operazione PUT in tale posizione.
In caso contrario, se l'operazione HEAD non trova l'oggetto, potrebbe essere visualizzato un numero elevato di errori 500 nel server interno se uno o più nodi di storage non sono disponibili.
È possibile impostare il controllo di coerenza “Available” per ciascun container utilizzando la richiesta DI coerenza PUT container.
Raccomandazioni per i nomi degli oggetti
Non utilizzare valori casuali come primi quattro caratteri dei nomi degli oggetti. Si consiglia invece di utilizzare prefissi non casuali e non univoci, ad esempio image.
Se è necessario utilizzare caratteri casuali e univoci nei prefissi dei nomi degli oggetti, è necessario anteporre i nomi degli oggetti a un nome di directory. Ovvero, utilizzare questo formato:
mycontainer/mydir/f8e3-image3132.jpg
Invece di questo formato:
mycontainer/f8e3-image3132.jpg
Raccomandazioni per “range reads”
Se l'opzione compress stored objects è selezionata (Configuration > System Settings > Grid Options), le applicazioni client Swift dovrebbero evitare di eseguire operazioni GET object che specificano la restituzione di un intervallo di byte. Queste operazioni “range Read” sono inefficienti perché StorageGRID deve decomprimere efficacemente gli oggetti per accedere ai byte richiesti. LE operazioni GET Object che richiedono un piccolo intervallo di byte da un oggetto molto grande sono particolarmente inefficienti; ad esempio, è molto inefficiente leggere un intervallo di 10 MB da un oggetto compresso da 50 GB.
Se gli intervalli vengono letti da oggetti compressi, le richieste del client possono scadere.
Se è necessario comprimere gli oggetti e l'applicazione client deve utilizzare le letture dell'intervallo, aumentare il timeout di lettura per l'applicazione. |