Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Feature Request] barman-cloud plugin should support virtual-hosted style addressing for S3-compatible storage

Abierto
#712 2 comentarios 1 reacción 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
55/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
aws, go, postgresql, python
Área
cloud, database

Línea de trabajo

Empieza localizando la configuración de barman-cloud ObjectStore y la construcción del cliente boto3 descritas en la issue. Sigue cómo se pasa endpointURL al cliente y, después, verifica que un estilo de direccionamiento configurable admita tanto solicitudes virtual-hosted como path-style para almacenamiento compatible con S3.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement
Description:

I'm using CloudNativePG with the barman-cloud plugin (version 0.9.0) for PostgreSQL backups to Alibaba Cloud OSS. However, I've encountered a critical issue: the plugin only supports path-style addressing, while Alibaba Cloud OSS (and many other S3-compatible services) now require virtual-hosted style addressing.

Problem Details:

AWS has deprecated path-style addressing since September 30, 2023
Many cloud providers (Alibaba Cloud OSS, Google Cloud Storage, etc.) require or strongly recommend virtual-hosted style
The barman-cloud plugin doesn't provide any configuration parameter for addressing_style
When endpointURL is specified, it defaults to path-style addressing

Current Workaround:

Currently, users have to:

Use custom backup solutions instead of the official plugin
Or use unsupported path-style endpoints (if available)

Expected Behavior:

The barman-cloud plugin should support both addressing styles with a configuration parameter like:

configuration:
  destinationPath: "s3://bucket-name/"
  endpointURL: "https://bucket-name.oss-cn-region.aliyuncs.com"
  s3AddressingStyle: "virtual"  # or "path"

Or automatically detect the appropriate style based on the endpoint URL format.

Technical Background:
  • AWS SDK (boto3) already supports addressing_style parameter in boto3.session.Config

  • Virtual-hosted style is now the standard for S3-compatible services

  • Path-style addressing has been deprecated by AWS

Impact:

This limitation prevents users from using the official plugin with:

  • Alibaba Cloud OSS

  • Google Cloud Storage

  • DigitalOcean Spaces

  • And other S3-compatible services that enforce virtual-hosted style

Proposed Solution:

Add a new parameter s3AddressingStyle to the ObjectStore configuration that gets passed to the underlying boto3 client configuration.

Code Reference:

In barman-cloud implementation, it should configure boto3 like:

config = boto3.session.Config(
    s3={'addressing_style': addressing_style}
)
s3_client = boto3.client(
    's3',
    endpoint_url=endpoint,
    config=config
)
Environment:
  • CloudNativePG: 1.28.0

  • barman-cloud plugin: 0.9.0

  • Kubernetes: 1.32.7

  • Storage: Alibaba Cloud OSS

Additional Context:
  1. Attempted Solutions:

[ ] I have tried setting the environment variable AWS_S3_ADDRESSING_STYLE=virtual in the pod configuration, but it has no effect

  1. Current Status:
  • Alibaba Cloud OSS strictly enforces virtual-hosted style addressing

  • AWS has completely phased out path-style support

  • This issue is becoming critical as more S3-compatible services adopt virtual-hosted style

  1. Reproduction Steps:
  • Configure barman-cloud plugin with Alibaba Cloud OSS endpoint

  • Set endpointURL to virtual-hosted style format

  • Observe that the plugin still attempts path-style requests

  • Receive errors from OSS indicating path-style is not supported

  1. Workaround Limitations:
  • Custom backup scripts lack the integration and reliability of the official plugin

  • Alternative S3-compatible endpoints may not be available in all regions

  • This forces users to choose between functionality and using the official tooling

Lenguaje dominante
Go
Estrellas
196
Forks
76
Merge medio
5 d 17 h
PR fusionados (30 d)
22

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de cloudnative-pg/plugin-barman-cloud

Todos los issues de cloudnative-pg/plugin-barman-cloud

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.