buzz-media: hardcoded path-style S3 addressing rules out virtual-hosted-style providers (e.g. Railway Buckets)
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
Research direction
Start in crates/buzz-media/src/storage.rs by tracing MediaConfig into Storage::new and inspect CONTRIBUTING for environment-variable documentation conventions. Verify that the new BUZZ_S3_FORCE_PATH_STYLE setting preserves path-style behavior by default and permits virtual-hosted-style addressing when false, then run the relevant Rust tests or checks available in the repository.
Written by the indexing model from the issue text.
Description
Problem
buzz-media hardcodes path-style S3 addressing. In crates/buzz-media/src/storage.rs the bucket client is always built with .with_path_style(), and there is no configuration to turn it off.
This rules out S3-compatible providers that only support virtual-hosted-style URLs. The concrete case I hit: Railway Buckets (their managed object storage) is virtual-hosted-style only, so a Railway self-host cannot use the platform's native storage and must run a MinIO service instead.
Proposal
Add a BUZZ_S3_FORCE_PATH_STYLE env var (default true, preserving current behavior for MinIO and existing deployments). When set to false, skip .with_path_style() so the client uses virtual-hosted-style addressing.
Small change: one field on MediaConfig, one conditional in Storage::new, docs for the new variable per CONTRIBUTING. Happy to PR it if this direction is acceptable.
Dupes checked
No existing issue or PR covers addressing style. Closest related S3-compat work: #2618 (RustFS as default backend), #2470 (GCS interop), #3002 (Ceph RGW ETags), which suggests the S3 compatibility matrix is an active concern.
- Dominant language
- Rust
- Stars
- 33.7k
- Forks
- 4.4k
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 239
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from block/buzz
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
workflow_sink's mention parser never masks code regions — @name inside a code span wakes the agent Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 Half a day Newbie friendliness 88/100
-
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
gitbutlerapp/gitbutler#15998 · 1 comment ·
-
bug triage:deciding
Difficulty 1/5 Under an hour Newbie friendliness 88/100
open-telemetry/otel-arrow#4132 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100