Recommandations pour la mise en œuvre de l'API REST Swift
Suivez ces recommandations lors de la mise en œuvre de l'API REST Swift pour une utilisation avec StorageGRID.
Recommandations pour les têtes à des objets inexistants
Si votre application vérifie régulièrement si un objet existe sur un chemin où vous ne vous attendez pas à ce que l'objet existe réellement, vous devez utiliser le contrôle de cohérence « disponible ». Par exemple, vous devez utiliser le contrôle de cohérence « disponible » si votre application effectue une opération DE TÊTE à un emplacement avant d'effectuer une opération DE MISE à cet emplacement.
Sinon, si l'opération HEAD ne trouve pas l'objet, vous pouvez recevoir un nombre élevé de 500 erreurs de serveur interne si un ou plusieurs nœuds de stockage ne sont pas disponibles.
Vous pouvez définir le contrôle de cohérence « disponible » pour chaque conteneur à l'aide de la demande DE cohérence DU conteneur PUT.
Recommandations pour les noms d'objet
Vous ne devez pas utiliser de valeurs aléatoires comme les quatre premiers caractères des noms d'objets. Au lieu de cela, vous devez utiliser des préfixes non aléatoires et non uniques, tels que l'image.
Si vous avez besoin d'utiliser des caractères aléatoires et uniques dans les préfixes de nom d'objet, vous devez préfixer les noms d'objet avec un nom de répertoire. C'est-à-dire, utilisez le format suivant :
mycontainer/mydir/f8e3-image3132.jpg
Au lieu de ce format :
mycontainer/f8e3-image3132.jpg
Recommandations pour « plages de lectures »
Si l'option Compress emmagased Objects est sélectionnée (Configuration > Paramètres système > Grid Options), les applications client Swift doivent éviter d'effectuer des opérations GET object spécifiant une plage d'octets à renvoyer. Ces opérations de « lecture à plage » sont inefficaces, car StorageGRID doit décompresser efficacement les objets pour accéder aux octets demandés. LES opérations GET Object qui demandent une petite plage d'octets provenant d'un objet très volumineux sont particulièrement inefficaces. Par exemple, il est très inefficace de lire une plage de 10 Mo à partir d'un objet compressé de 50 Go.
Si les plages sont lues à partir d'objets compressés, les demandes client peuvent être en attente.
Si vous devez compresser des objets et que votre application client doit utiliser des lectures de plage, augmentez le délai de lecture de l'application. |