datus-s3-plugin
A Datus plugin for browsing and moving S3 data from
datus s3 ... — ls/stat/cat/head, cp/sync/mv/rm, presigned
URLs, and S3 Select (SQL over CSV/JSON/Parquet). Backed by boto3.
pip install datus-s3-plugin
Requires datus-agent >= 0.3.8 — the system-prompt template uses the
config_mutablerender-context variable (older versions skip the whole prompt section).
Configuration
Profiles live under agent.plugins.s3.<profile> in Datus' agent.yml:
agent:
plugins:
s3:
prod:
default: true
region: us-east-1
bucket: my-data-lake # optional default bucket
kms_key_id: arn:aws:kms:...:key/abc # optional SSE-KMS on writes
endpoint_url: http://minio:9000 # optional (MinIO/S3-compatible)
# credentials: standard AWS chain, or profile / keys / role_arn
Commands
| Command | Purpose |
|---|---|
ls [uri] [-r] |
list objects (or buckets when no URI) |
stat <uri> |
object metadata (HEAD) |
cat <uri> / head <uri> |
print contents / first lines |
presign <uri> [--method GET|PUT] |
presigned URL |
select <uri> --sql ... --format csv|json|parquet |
S3 Select |
cp / sync / mv |
move objects (local↔S3, S3→S3) |
rm <uri> [-r] [-y] |
delete (prompts unless -y) |
buckets list / location <bucket> |
bucket info |
datus s3 ls s3://my-lake/events/ -r
datus s3 select s3://my-lake/events/day.csv --format csv --header --sql "select count(*) from s3object"
datus s3 cp ./out.parquet s3://my-lake/exports/
datus s3 rm s3://my-lake/tmp/ -r -y
Exit codes
0 success · 1 runtime/API error · 2 usage (also: rm without -y when
not interactive) · 3 config error.
Development
uv run --package datus-s3-plugin pytest datus-s3-plugin
Never imports datus; declares the plugin contract in datus-plugin.yml
and registers the s3
entry point in datus.plugins. Shared boto3 plumbing lives in
datus-aws-common. Bundled skills: s3 and s3-setup.
Agent bash permissions
Read/list/preview/select/presign run everywhere; cp/sync/mv are
routine (confirmed under normal, auto under auto); rm always requires
confirmation. User rules in agent.yml always win.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file datus_s3_plugin-0.2.0.tar.gz.
File metadata
- Download URL: datus_s3_plugin-0.2.0.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
20874749b72fae1363785918a823129c9d2bda0f2d302b3401bc79303f619ef2
|
|
| MD5 |
1479772a6e5f6cb51c3ea95eb4ae15fd
|
|
| BLAKE2b-256 |
066266149150f8c20b4d32786433f3d76c2d67954b09eb5ae262bab163f87c1d
|
File details
Details for the file datus_s3_plugin-0.2.0-py3-none-any.whl.
File metadata
- Download URL: datus_s3_plugin-0.2.0-py3-none-any.whl
- Upload date:
- Size: 15.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cee9b6f9b06ceb2fe76d26ef296c6cdc42d52ca3cc8a356347b0420f14895945
|
|
| MD5 |
fbe5a4e55768dfbda9c79498fc82c1ce
|
|
| BLAKE2b-256 |
52aece71d66d13f2c1dee411d004b1dc774867f2b32b308b5d470fa85200895d
|