Skip to content

docs(examples): add capo Python SDK integration guide - #144

Merged
majinghe merged 3 commits into
rustfs:mainfrom
majinghe:docs/capo-integration
Sep 20, 2026
Merged

majinghe merged 3 commits into
rustfs:mainfrom
majinghe:docs/capo-integration

Conversation

@majinghe

@majinghe majinghe commented Sep 20, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Add a capo (Python) example page under Developer → Examples in all five locales (en, zh, de, fr, ja), placed next to the boto3 page, with navigation entries in each locale's developer/examples/meta.json.

capo is a community-driven AWS SDK for Python with fully typed sync and async clients. Its S3 client ships as capo-s3 (requires Python 3.10+). The page covers:

  • Configure: S3Client with a custom endpoint, Credentials, and native force_path_style=True path-style addressing (no botocore Config workaround needed)
  • Verify: create_bucket, put_object, list_objects_v2, streaming get_object reads (context manager), and presigned_get_object URLs
  • Async client: AsyncS3Client with Body.async_from_path streaming uploads and async context-manager reads
  • Next steps: pagination via iter_list_objects_v2 and a link to the boto3 alternative

Placement and cross-links

The page lives in Developer → Examples, where the other connection recipes live (boto3, s3cmd, rclone, ...); the SDK section (developer/sdk/) stays organized around the official AWS SDKs, one page per language, and its sdk/index.md explicitly recommends official AWS SDKs. For discoverability, Python readers are pointed to capo from both directions, in all five locales:

  • sdk/python.md (Boto3 guide) links the capo example as the community alternative with native async support
  • examples/boto3.md (Next steps) links the capo example; the capo page links back to boto3

Note: the guide installs capo-s3 rather than capo — the umbrella capo name on PyPI is an unrelated guitar-chord library.

Verification

  • Code samples executed against a live RustFS instance (rustfs/rustfs:latest via Docker) with capo-s3 0.16.0: sync/async bucket creation, put/get, listing, pagination, and anonymous fetch of a presigned URL all succeeded (presigned URL returned hello rustfs via plain curl).
  • npm run docs:check — PASS (orphans, broken links, fences, banned strings, locale parity all green)
  • npm run build — PASS, 2515 files generated; all five /developer/examples/capo pages present in dist/public/
  • Locale audit: no findings for the new pages (remaining audit errors are pre-existing untranslated legacy pages in de/fr, unchanged by this PR)

Related issue

Locales covered

en, zh, de, fr, ja

Add a capo (Python) example page under Developer > Examples in all
five locales (en, zh, de, fr, ja), placed next to the boto3 page.

The guide connects capo-s3, the S3 client package of the
community-driven capo AWS SDK for Python, to RustFS using
force_path_style path-style addressing, and covers bucket creation,
object upload and listing, streaming get_object reads, presigned
URLs, and the asynchronous client (AsyncS3Client with
Body.async_from_path).

Verified the code samples against a live RustFS instance with
capo-s3 0.16.0: sync and async clients, pagination via
iter_list_objects_v2, and anonymous fetch of a presigned URL.

Closes rustfs/rustfs#8010
@vercel

vercel Bot commented Sep 20, 2026

Copy link
Copy Markdown

@majinghe is attempting to deploy a commit to the overtrue's projects Team on Vercel.

A member of the Team first needs to authorize it.

Point readers of developer/sdk/python.md (Boto3 guide) to the capo
example page for a community SDK with native async support and full
typing, in all five locales. The SDK section stays organized around
the official AWS SDKs; capo remains documented as an example recipe.
Point Python users from the boto3 example (Next steps) to the capo
example as a community-driven SDK with native async support and full
typing, in all five locales. Together with the sdk/python.md
cross-link, boto3 and capo now reference each other in both
directions.
@majinghe
majinghe merged commit d6ff14a into rustfs:main Sep 20, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document the usage with the community-driven AWS SDK for Python - Capo

1 participant