Volcengine TOS File Process
Compress and uncompress file objects stored in Volcengine TOS through the TOS gateway's file_jobs API.
Setup (once per environment)
Install dependencies on first use:
cd {baseDir}
pip install -r {baseDir}/requirements.txt
Then run scripts with Python 3.7+:
python3 {baseDir}/scripts/<script>.py <args>
Environment Variables
This skill relies on the TOS identity declared in the metadata block. Common runtime variables are:
| Environment Variable | Required | Description |
|---|---|---|
TOS_ACCESS_KEY |
Yes | TOS access key ID |
TOS_SECRET_KEY |
Yes | TOS secret access key |
TOS_ENDPOINT |
Yes | TOS endpoint URL |
TOS_REGION |
Yes | TOS region |
TOS_BUCKET |
Yes | Source bucket that stores the file objects |
TOS_OBJECT_KEY |
No | Source object key. Can be overridden with --key or --keys |
TOS_SECURITY_TOKEN |
No | STS session token when using temporary credentials |
Quick start
# Compress multiple TOS objects into a zip archive and wait for completion
python3 {baseDir}/scripts/file_compress.py \
--keys file1.jpg,file2.txt \
--format zip \
--output-key output/archive.zip \
--wait
# Uncompress a zip archive and wait for completion
python3 {baseDir}/scripts/file_uncompress.py \
--key output/archive.zip \
--prefix output/unzipped/ \
--wait
Available scripts
| Script | Purpose |
|---|---|
scripts/file_compress.py |
Submit an async FileCompress job via the TOS gateway's file_jobs API that compresses TOS objects into an archive (zip/tar/zst). Supports --wait to poll until completion. |
scripts/file_uncompress.py |
Submit an async FileUncompress job via the TOS gateway's file_jobs API that extracts an archive in TOS. Supports --wait to poll until completion. |
scripts/tos_jobs_client.py |
Shared client for TOS gateway file_jobs APIs using pre-signed URL auth. |
Rules
- TOS gateway API: This skill uses the TOS gateway's
file_jobsAPI withjob_type=FileCompressorjob_type=FileUncompress. Authentication is handled viapre_signed_urlfrom the TOS Python SDK and the TOS identity declared in themetadatablock above. - Supported archive formats: Compress supports
zip,tar, andzst. The output object key suffix must match the chosen format (.zip,.tar,.zst). - Async job model: The scripts create async jobs and optionally wait for completion with the
--waitflag. - Language: Reply in the user's preferred language.
Further reading
- Setup and environment: README.md
- Parameter reference: REFERENCE.md
- End-to-end workflows: WORKFLOWS.md