Blob Storage Integration
FastSkill supports multiple blob storage backends for distributing skill artifacts. This guide covers configuration, authentication, and best practices for each storage type.Supported Storage Backends
Local Filesystem
Store artifacts on the local filesystem. Useful for:- Development and testing
- Local deployments
- Backup storage
S3 Storage
Support for AWS S3 and S3-compatible services (via endpoint configuration):- AWS S3: Amazon Web Services Simple Storage Service
- S3-compatible services: Any service that implements the S3 API (configure via endpoint)
Configuration
Command Line Options
Configure storage via command line:Configuration File
Use.fastskill/publish.toml for persistent configuration:
Environment Variables
Set credentials via environment variables:Storage Backend Details
Local Filesystem
Configuration:- Local development
- Testing workflows
- Backup storage
- Air-gapped environments
./artifacts).
AWS S3
Configuration:- AWS Access Key ID and Secret Access Key
- IAM roles (when running on AWS)
- AWS credentials file (
~/.aws/credentials)
- Use IAM roles instead of access keys when possible
- Enable versioning on S3 buckets
- Use bucket policies for access control
- Enable server-side encryption
S3-Compatible Services
Configuration: For S3-compatible services (e.g., self-hosted storage), use the same S3 configuration but set theendpoint parameter:
- Self-hosted storage solutions
- Development environments
- Private cloud deployments
- Any service implementing the S3 API
AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables.
Authentication
AWS S3
Method 1: Environment VariablesS3-Compatible Services
Environment Variables: For S3-compatible services, use the same AWS environment variables:Upload Workflow
Basic Upload
With Registry Index
Download URLs
Public Access
For public artifacts, the blob base URL is configured in your repository configuration and automatically used during publishing. This generates download URLs like:Private Access
For private artifacts:- Use signed URLs (future feature)
- Configure access control via bucket policies
- Use IAM roles for authenticated access
Best Practices
Security
- Never commit credentials: Use environment variables or secrets management
- Use IAM roles: Prefer IAM roles over access keys when possible
- Enable encryption: Use server-side encryption for sensitive artifacts
- Access control: Use bucket policies to restrict access
- Rotate credentials: Regularly rotate access keys
Performance
- CDN Integration: Use CloudFront or similar CDN for faster downloads
- Compression: ZIP files are already compressed
- Parallel Uploads: FastSkill uploads artifacts in parallel when possible
- Regional Storage: Store artifacts close to users
Cost Optimization
- Lifecycle Policies: Set up S3 lifecycle policies to archive old artifacts
- Storage Classes: Use appropriate S3 storage classes (Standard, IA, Glacier)
- Cleanup: Regularly remove old or unused artifacts
- Monitoring: Monitor storage usage and costs
Reliability
- Versioning: Enable versioning on storage buckets
- Replication: Use cross-region replication for redundancy
- Backup: Maintain backups of critical artifacts
- Monitoring: Set up alerts for storage issues
Troubleshooting
Upload Failures
Issue: Upload fails with authentication error Solutions:- Verify credentials are correct
- Check IAM permissions
- Ensure bucket exists and is accessible
- Verify endpoint URL is correct
Access Denied
Issue: Cannot access uploaded artifacts Solutions:- Check bucket policies
- Verify IAM permissions
- Ensure public access is configured (if needed)
- Check CORS settings for web access
Slow Uploads
Issue: Uploads are slow Solutions:- Check network connectivity
- Use regional endpoints
- Enable multipart uploads (automatic for large files)
- Consider using faster storage class