tos-file-access
Upload files or directories to Volcano Engine TOS (Torch Object Storage) and download files from URLs. Use this skill when (1) Upload Agent-generated files or directories (like videos, images, reports, output folders) to TOS for sharing, (2) Download files from URLs before Agent processing.
- Installs
- 411
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://skills.volces.com --skill tos-file-access- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads tos-file-access automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
TOS File Access
This skill provides utilities for uploading files and directories to Volcano Engine TOS (Torch Object Storage) and downloading files from URLs.
Overview
TOS (Torch Object Storage) is Volcano Engine's object storage service, similar to AWS S3. This skill enables:
- Upload: Upload Agent-generated files or entire directories to TOS and get shareable signed URLs (for files) or TOS paths (for directories)
- Download: Download files from URLs to local storage for Agent processing
Typical Workflows
Pre-Agent Execution: Download User Files
When users provide file URLs (TOS or external), download them before processing:
# Download single file
python scripts/file_download.py https://example.com/data.csv
# Download multiple files
python scripts/file_download.py https://example.com/data.csv https://example.com/config.json
# Specify save directory and filenames
python scripts/file_download.py https://example.com/data.csv --save-dir /workspace --filenames dataset.csv
Post-Agent Execution: Upload Output Files or Directories
After generating files or directories (videos, charts, reports, output folders, etc.), upload them to TOS for user access:
# Upload single file (auto-detected)
python scripts/tos_upload.py /path/to/output.mp4 --bucket my-bucket
# Upload entire directory (auto-detected)
python scripts/tos_upload.py /path/to/output_folder --bucket my-bucket
# Upload with custom region and expiration
python scripts/tos_upload.py /path/to/report.pdf --bucket my-bucket --region cn-beijing --expires 86400
Scripts
scripts/file_download.py
Download files from URLs to local storage.
Usage:
python scripts/file_download.py <url1> [url2 ...] [--save-dir DIR] [--filenames NAME1 NAME2 ...]
Arguments:
urls: One or more URLs to download (positional, required)--save-dir: Save directory (optional, defaults to/tmp)--filenames: Custom filenames for downloaded files (optional, must match number of URLs)
Examples:
# Download single file to /tmp
python scripts/file_download.py https://tos-cn-beijing.volces.com/bucket/file.pdf
# Download to specific directory
python scripts/file_download.py https://example.com/data.json --save-dir /workspace/data
# Download multiple files with custom names
python scripts/file_download.py \
https://example.com/file1.pdf \
https://example.com/file2.jpg \
--save-dir /workspace \
--filenames document.pdf image.jpg
Returns: Prints absolute paths of downloaded files (one per line)
scripts/tos_upload.py
Upload files or directories to TOS and generate signed access URLs (for files) or TOS paths (for directories).
Key Features:
- Auto-detection: Automatically detects whether the path is a file or directory
- Session-based paths: Uses
TOOL_USER_SESSION_IDenvironment variable to organize uploads - Preserves structure: For directories, maintains the full directory structure in TOS
- Automatic bucket creation: Creates bucket if it doesn't exist (with private ACL)
Usage:
python scripts/tos_upload.py <path> --bucket BUCKET [--region REGION] [--expires SECONDS]
Arguments:
path: Local file or directory path to upload (positional, required)--bucket: TOS bucket name (required)--region: TOS region (optional, defaults tocn-beijing)--expires: Signed URL expiration in seconds (optional, defaults to 604800 = 7 days, only applies to file uploads)
Upload Structure:
- File:
upload/{session_prefix}/{filename}- Example:
upload/skill_agent_veadk_default_user_tmp-session-20251210150057/video.mp4
- Example:
- Directory:
upload/{session_prefix}/{directory_name}/{relative_path}- Example:
upload/skill_agent_veadk_default_user_tmp-session-20251210150057/output_folder/file1.txt
- Example:
Session Prefix:
- If
TOOL_USER_SESSION_IDis set, uses that value as prefix - Otherwise, falls back to timestamp format
YYYYMMDD_HHMMSS
Authentication: Requires one of:
- Environment variables:
VOLCENGINE_ACCESS_KEYandVOLCENGINE_SECRET_KEY - VeFaaS IAM Role (automatic credential retrieval)
Examples:
# Upload single file (auto-detected)
python scripts/tos_upload.py /workspace/output.mp4 --bucket my-bucket
# Upload entire directory (auto-detected)
python scripts/tos_upload.py /workspace/results_folder --bucket my-bucket
# Upload to different region with 1-day expiration
python scripts/tos_upload.py /workspace/report.pdf \
--bucket my-reports \
--region cn-beijing \
--expires 86400
# Upload directory with all options
python scripts/tos_upload.py /workspace/output_dir \
--bucket data-storage \
--region cn-beijing
Returns:
- For files: Prints a signed URL that can be shared with users (valid for specified duration)
- For directories: Prints a TOS path in format
tos://bucket-name/path/to/directory
Output Examples:
# File upload output
============================================================
✅ Upload Successful!
============================================================
Signed URL:
https://my-bucket.tos-cn-beijing.volces.com/upload/skill_agent_xxx/video.mp4?X-Tos-Signature=...
============================================================
# Directory upload output
============================================================
✅ Upload Successful!
============================================================
TOS Path:
tos://my-bucket/upload/skill_agent_xxx/output_folder
============================================================
Environment Variables
VOLCENGINE_ACCESS_KEY: Volcano Engine access key for TOS authenticationVOLCENGINE_SECRET_KEY: Volcano Engine secret key for TOS authenticationTOOL_USER_SESSION_ID: Session ID used to generate organized upload paths (optional, falls back to timestamp)
Common Use Cases
-
Video Processing: Download source video → process → upload result
# Download python scripts/file_download.py https://example.com/input.mp4 --save-dir /workspace # Process video (your code here) # Upload result python scripts/tos_upload.py /workspace/output.mp4 --bucket video-storage -
Data Analysis: Download datasets → analyze → upload charts/reports folder
# Download data python scripts/file_download.py https://example.com/data.csv --save-dir /workspace # Analyze and generate charts (your code here) # Upload entire results folder python scripts/tos_upload.py /workspace/analysis_results --bucket analysis-bucket -
Batch Processing: Process multiple files and upload output directory
# Process files (your code here, generates /workspace/batch_output/) # Upload entire output directory python scripts/tos_upload.py /workspace/batch_output --bucket batch-results -
Project Export: Upload a complete project directory structure
# Upload project directory with subdirectories python scripts/tos_upload.py /workspace/my_project --bucket project-storage # Result: tos://project-storage/upload/{session_id}/my_project/...
Error Handling
- IF the script raises the error
VOLCENGINE_ACCESS_KEY and VOLCENGINE_SECRET_KEY are not provided or IAM Role is not configured., inform the user that they need to provide theVOLCENGINE_ACCESS_KEYandVOLCENGINE_SECRET_KEYenvironment variable. Write it to the environment variable file in the workspace. If the file already exists, append it to the end. Ensure the environment variable format is correct, make the environment variable effective, and retry the task that just failed.
Notes
- Auto-detection: No need to specify whether uploading a file or directory - the script detects automatically
- Session organization: Files and directories are automatically organized by session ID for easy tracking
- Signed URLs (files only): Valid for 7 days by default (adjustable via
--expires) - TOS Paths (directories): Returned as
tos://bucket/pathformat for reference - Structure preservation: Directory uploads maintain the complete folder structure in TOS
- No timestamp in filenames: Original filenames are preserved (session prefix provides uniqueness)
- Auto-bucket creation: Bucket is automatically created with private ACL if it doesn't exist
- Auto-deduplication: Downloads automatically rename files if they already exist
- IAM Role support: Scripts automatically retrieve credentials from VeFaaS IAM when available
- Error handling: Scripts print clear error messages for network, permission, or file issues
- Bucket requirement: Bucket name must be specified via
--bucketparameter (required)
FAQ
What does the tos-file-access skill do?
Upload files or directories to Volcano Engine TOS (Torch Object Storage) and download files from URLs. Use this skill when (1) Upload Agent-generated files or directories (like videos, images, reports, output folders) to TOS for sharing, (2) Download files from URLs before Agent processing.
How do I install tos-file-access?
Run npx skills add https://skills.volces.com --skill tos-file-access in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/tos-file-access/ (personal) or .claude/skills/tos-file-access/ (project).
Which AI agents can use tos-file-access?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is tos-file-access safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains tos-file-access?
It is published by skills.volces.com in skills.volces.com. It has 411 recorded installs.
More from skills.volces.com
byted-web-search
skills.volces.com
火山引擎豆包搜索 API(原联网搜索/融合信息搜索),返回网页/图片结果。联网搜索场景优先使用本 skill。触发词包括:豆包搜索、查/搜/找、真的吗/靠谱吗/确认/核实、最近/今天/最新/近期、出处/来源/链接、Agent Plan、融合信息搜索、Harness、有什么/有哪些/推荐、价格/政策/汇率/行情、对比/区别/哪个好、听说/据说/不太确定、热搜/热门/火、帮我看/了解一下、求证/辟谣、值不值得/该不该。任务依赖在线事实或时效性时优先使用。若回答可能依赖外部事实,优先调用本 skill 再作答。
byted-supabase
skills.volces.com
火山引擎 Supabase . 管理 AIDAP Supabase 项目、工作区、数据库、分支、Auth、Realtime、Edge Functions、Storage、API Keys、SQL、Schema 变更、TypeScript 类型生成和 MCP 集成。
find-skills
skills.volces.com
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
byted-util-ark-cua
skills.volces.com
Delegate broad computer-use tasks to ARK CUA for Volcengine AgentPlan users through an authenticated cloud desktop, and synchronize explicit credentials to a caller-owned CUA through Credential Agent. Use for web or desktop-app operation, file workflows, reusable task contexts, artifacts, temporary CUA App URLs, desktop shutdown/start/recovery, inspection, or exact browser, environment, secret, Credential Set, and managed-file credential setup/sync/status/reset. Do not use when local reasoning or a purpose-built local/API tool can complete the request more directly.
agent-browser
skills.volces.com
Headless browser automation CLI optimized for AI agents with accessibility tree snapshots and ref-based element selection
self-improving-agent
skills.volces.com
AI自我改进与记忆系统 - 解决'同类错误反复犯、用户纠正不长记性'的痛点。自动捕获错误、用户纠正、最佳实践,并转化为长期记忆。
Popular media & creative skills
hyperframes
heygen-com/hyperframes
Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.
media-use
heygen-com/hyperframes
Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.
hyperframes-registry
heygen-com/hyperframes
About 450 ready-made HyperFrames blocks and components installed as editable source - transitions, overlays, titles, kinetic type, captions, charts, map overlays, 3D, camera moves. Use it before hand-building any named visual (CRT scanlines, glitch, film grain, a chart); also for hyperframes add and catalog.
hyperframes-creative
heygen-com/hyperframes
Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use hyperframes-animation.
ai-video-generation
101-skills/superpowers
Generate AI videos with Google Veo, Seedance 2.0, HappyHorse, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, reference-to-video, video editing, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative, seedance, happyhorse
ai-image-generation
101-skills/superpowers
Generate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stable diffusion, generate image, ai art, midjourney alternative, dall-e alternative, text2img, t2i, image generator, ai picture, create image with ai, generative ai, ai illustration, grok image, gemini image, gpt image, openai image, chatgpt image