Empfehlungen für die Implementierung der S3-REST-API
Bei der Implementierung der S3-REST-API zur Verwendung mit StorageGRID sollten Sie diese Empfehlungen beachten.
Empfehlungen für Köpfe zu nicht vorhandenen Objekten
Wenn Ihre Anwendung regelmäßig prüft, ob ein Objekt in einem Pfad existiert, in dem Sie nicht erwarten, dass das Objekt tatsächlich vorhanden ist, sollten Sie die Konsistenzkontrolle „available
“ verwenden. Verwenden Sie zum Beispiel die Konsistenzkontrolle „Available
“, wenn Ihre Anwendung einen Speicherort vor DEM ANSETZEN an sie leitet.
Andernfalls werden möglicherweise 500 Fehler des internen Servers angezeigt, wenn ein oder mehrere Speicherknoten nicht verfügbar sind.
Sie können die Konsistenzkontrolle „Available
“ für jeden Bucket mithilfe der PUT Bucket-Konsistenzanforderung festlegen oder Sie können die Konsistenzkontrolle in der Anforderungs-Kopfzeile für einen einzelnen API-Vorgang festlegen.
Empfehlungen für Objektschlüssel
Bei Buckets, die in StorageGRID 11.4 oder höher erstellt wurden, ist es nicht mehr erforderlich, Objektschlüsselnamen auf die Performance-Best-Practices zu beschränken. Sie können jetzt beispielsweise Zufallswerte für die ersten vier Zeichen von Objektschlüsselnamen verwenden.
Befolgen Sie bei Buckets, die in Versionen vor StorageGRID 11.4 erstellt wurden, weiterhin die folgenden Empfehlungen für Objektschlüsselnamen:
-
Als die ersten vier Zeichen von Objektschlüsseln sollten Sie keine Zufallswerte verwenden. Dies steht im Gegensatz zu der früheren AWS Empfehlung für wichtige Präfixe. Stattdessen sollten Sie nicht-zufällige, nicht-eindeutige Präfixe verwenden, wie z. B.
image
. -
Wenn Sie die frühere Empfehlung von AWS befolgen, zufällige und eindeutige Zeichen in Schlüsselpräfixen zu verwenden, sollten Sie die Objektschlüssel mit einem Verzeichnisnamen vorschreiben. Verwenden Sie dieses Format:
mybucket/mydir/f8e3-image3132.jpg
Anstelle dieses Formats:
mybucket/f8e3-image3132.jpg
Empfehlungen für „Range reads
“
Wenn die Option komprimiere gespeicherte Objekte ausgewählt ist (Konfiguration > Grid-Optionen), sollten S3-Client-Anwendungen verhindern, DASS GET-Objekt-Operationen ausgeführt werden, die einen Bereich von Bytes angeben. Diese Vorgänge „range Read
“ sind ineffizient, da StorageGRID die Objekte effektiv dekomprimieren muss, um auf die angeforderten Bytes zugreifen zu können. GET-Objektvorgänge, die einen kleinen Byte-Bereich von einem sehr großen Objekt anfordern, sind besonders ineffizient, beispielsweise ist es sehr ineffizient, einen Bereich von 10 MB von einem komprimierten 50-GB-Objekt zu lesen.
Wenn Bereiche von komprimierten Objekten gelesen werden, können Client-Anforderungen eine Zeitdauer haben.
Wenn Sie Objekte komprimieren müssen und Ihre Client-Applikation Bereichslesevorgänge verwenden muss, erhöhen Sie die Zeitüberschreitung beim Lesen der Anwendung. |