NeoFS S3 Gateway v0.45.1 optimise les performances de lecture et d'écriture via le SDK RC21
Points clés
- •NeoFS S3 Gateway v0.45.1 introduit une optimisation du chemin d'écriture qui supprime au moins une copie intermédiaire de données lors des opérations PUT, réduisant ainsi l'allocation de mémoire et la charge du processeur.
- •Les requêtes GET partielles récupèrent désormais à la fois les en-têtes d'objet et les données de charge utile en un seul appel réseau au lieu d'exiger un aller-retour séparé, ce qui profite aux flux de travaux de streaming multimédia et de téléchargements partiels.
- •Les listes de contrôle d'accès étendues sont appliquées simultanément avec la création de conteneurs, éliminant ainsi une requête de suivi et comblant une fenêtre où les conteneurs nouvellement créés pouvaient exister sans leur politique d'accès désignée.
- •Un correctif de métadonnées filtre les attributs du système interne NeoFS des réponses GetObject, garantissant que seules les métadonnées définies par l'utilisateur sont renvoyées et réduisant le risque de fuite d'informations dans les déploiements multi-locataires.
- •Le correctif inclut une mise à jour de la dépendance gRPC vers la v1.82.1 qui atténue les attaques par déni de service par inondation de trames HTTP/2 et résout les vulnérabilités de contournement d'autorisation dans la correspondance des autorisations xDS.

Neo SPCC a publié NeoFS S3 Gateway v0.45.1 le 4 août. Cette mise à jour corrective introduit trois optimisations de performances et un correctif de métadonnées pour l'interface compatible S3 du réseau de stockage décentralisé NeoFS. L'API d'Amazon S3 étant devenue la norme de facto pour le stockage d'objets sur les plateformes centralisées et décentralisées, les améliorations apportées au débit et à l'exactitude de la passerelle S3 affectent directement la facilité avec laquelle les développeurs peuvent migrer ou créer des applications sur NeoFS à l'aide d'outils familiers.
Deux de ces améliorations de performances sont alimentées par le NeoFS SDK Go RC21, qui a été publié quelques jours auparavant aux côtés de NeoFS Node v0.55.0.
S'appuyant sur la version majeure de juillet de S3 Gateway v0.45.0 — qui a apporté la configuration des espaces de noms, la simplification des règles EACL et la suppression de la prise en charge de l'ancien access box — ce nouveau correctif ne nécessite aucune migration pour les utilisateurs existants de la v0.45.0.
Optimisations de la mise en mémoire tampon d'écriture et des requêtes GET partielles
La première optimisation implémente l'interface io.ReaderFrom pour l'enregistreur de la charge utile de l'objet, une fonctionnalité introduite dans le SDK RC21. En supprimant au moins une copie intermédiaire de données lors des opérations PUT, cette mise à jour réduit l'allocation de mémoire et la charge du processeur sur le chemin d'écriture (#1320).
La deuxième optimisation améliore les requêtes GET partielles. Auparavant, ces requêtes exigeaient un aller-retour séparé pour récupérer l'en-tête de l'objet avant de récupérer la plage de données spécifiée. En tirant parti des paramètres de plage d'octets de type HTTP du SDK RC21, la passerelle peut désormais récupérer à la fois l'en-tête et la charge utile partielle en un seul appel réseau (#1319). Cette amélioration profite de manière significative aux flux de travaux de streaming multimédia, de téléchargements partiels et de téléchargements multipartites qui dépendent des lectures de plage S3.
Listes de contrôle d'accès étendues appliquées lors de la création de conteneurs
Les listes de contrôle d'accès étendues (EACL) sont désormais appliquées simultanément avec la création de conteneurs en un seul appel réseau, éliminant ainsi le besoin d'une requête de suivi (#1304). Cet ajustement réduit la latence lors de la création de buckets S3 et ferme une brève fenêtre de vulnérabilité où un conteneur nouvellement créé pourrait exister sans sa politique d'accès désignée.
Correction des attributs système
Un correctif d'exactitude crucial filtre les attributs du système interne NeoFS des réponses de métadonnées GetObject (#1321). Dans les versions précédentes, ces attributs de niveau protocole étaient inclus avec les métadonnées définies par l'utilisateur dans les réponses S3, exposant par inadvertance les détails de l'implémentation interne aux clients. Le correctif garantit que seules les métadonnées définies par l'utilisateur sont renvoyées, alignant le système sur le comportement attendu de l'API S3 et réduisant le risque de fuite d'informations dans les déploiements multi-locataires.
Mises à jour des dépendances
Outre la mise à niveau du SDK RC21, la version 0.45.1 intègre diverses mises à jour de sécurité et de maintenance, notamment :
golang.org/x/cryptov0.52.0golang.org/x/netv0.55.0google.golang.org/grpcv1.82.1
La mise à jour de gRPC adresse spécifiquement les mitigations pour les attaques par déni de service par inondation de trames HTTP/2 et résout les scénarios de contournement d'autorisation trouvés dans la correspondance des autorisations xDS. Ces types de vulnérabilités HTTP/2 ont été activement exploités dans l'écosystème d'infrastructure plus large, ce qui rend les mises à jour de dépendances en temps opportun une pratique de sécurité de base pour les passerelles de stockage exposées à des clients non fiables.
Les notes de version complètes sont disponibles ici : https://github.com/nspcc-dev/neofs-s3-gw/releases/tag/v0.45.1