Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン
#712 コメント 2 件 リアクション 1 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@davidalmgren95 がすでに取り組んでいます。

2026年5月26日 から。

  • #924 @davidalmgren95 による — オープン

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
55/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
静か
技術スタック
aws, go, postgresql, python
領域
cloud, database

調査の方向性

まず、issueで説明されている barman-cloud ObjectStore の設定と boto3 クライアントの構築箇所を特定します。endpointURL がクライアントに渡される方法を追跡し、設定可能なアドレッシングスタイルが、S3互換ストレージ向けの virtual-hosted リクエストと path-style リクエストの両方をサポートしていることを確認します。

索引モデルが issue の本文から書いたものです。

説明

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

主要言語
Go
スター
198
フォーク
81
平均マージ
2日 6時間
マージ済み PR(30日)
19

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

cloudnative-pg/plugin-barman-cloud のほかの issue

cloudnative-pg/plugin-barman-cloud の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。