Raccomandazioni per l'implementazione di Swift REST API
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 "INVIO di una richiesta di coerenza del container". Viene visualizzato il controllo di coerenza Set the “Available” (Imposta la coerenza " disponibile") per ciascun container utilizzando "OTTENERE una richiesta di coerenza dei container".
Raccomandazioni per i nomi degli oggetti
Per i container creati in StorageGRID 11.4 o versioni successive, non è più necessario limitare i nomi degli oggetti per soddisfare le Best practice di performance. Ad esempio, è ora possibile utilizzare valori casuali per i primi quattro caratteri dei nomi degli oggetti.
Per i container creati in release precedenti a StorageGRID 11.4, continuare a seguire questi consigli per i nomi degli oggetti:
-
Non utilizzare valori casuali come primi quattro caratteri dei nomi degli oggetti. Ciò è in contrasto con la precedente raccomandazione AWS per i prefissi dei nomi. Si consiglia invece di utilizzare prefissi non casuali e non univoci, ad esempio
image
. -
Se si segue la precedente raccomandazione AWS per utilizzare caratteri casuali e univoci nei prefissi dei nomi, è necessario anteporre i nomi degli oggetti con 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 il "opzione globale per comprimere gli oggetti memorizzati" È attivato, 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. |