Install
openclaw skills install cloud-storage-managerManage multiple cloud storage providers with features for file upload/download, bucket management, sync, multipart uploads, and CDN integration.
openclaw skills install cloud-storage-managerSKILL.md for cloud-storage-manager
| Field | Value |
|---|---|
| Name | cloud-storage-manager |
| Slug | cloud-storage-manager |
| Version | 1.0.0 |
| Homepage | https://github.com/openclaw/cloud-storage-manager |
| Category | automation |
| Tags | cloud, storage, s3, oss, cos, aliyun, aws, azure, backup, sync |
Universal cloud storage manager supporting multiple providers (AWS S3, Aliyun OSS, Tencent COS, Azure Blob). Features include file upload/download, bucket management, sync operations, multipart uploads, and CDN integration.
通用云存储管理器,支持多种云服务商(AWS S3、阿里云OSS、腾讯云COS、Azure Blob)。功能包括文件上传下载、存储桶管理、同步操作、分片上传和CDN集成。
# AWS S3
AWS_ACCESS_KEY_ID=your_key
AWS_SECRET_ACCESS_KEY=your_secret
AWS_REGION=us-east-1
AWS_BUCKET=my-bucket
# Aliyun OSS
ALIYUN_ACCESS_KEY_ID=your_key
ALIYUN_ACCESS_KEY_SECRET=your_secret
ALIYUN_OSS_ENDPOINT=oss-cn-hangzhou.aliyuncs.com
ALIYUN_OSS_BUCKET=my-bucket
# Tencent COS
TENCENT_SECRET_ID=your_id
TENCENT_SECRET_KEY=your_key
TENCENT_COS_REGION=ap-beijing
TENCENT_COS_BUCKET=my-bucket
# Azure
AZURE_STORAGE_CONNECTION_STRING=your_connection_string
AZURE_CONTAINER=my-container
from cloud_storage_manager import StorageManager, Provider
# Initialize with Aliyun OSS
storage = StorageManager(Provider.ALIYUN_OSS)
# Upload file
storage.upload("local/file.txt", "remote/path/file.txt")
# Download file
storage.download("remote/path/file.txt", "local/downloaded.txt")
# List files
files = storage.list_objects(prefix="documents/")
# Delete file
storage.delete("remote/path/file.txt")
# Get signed URL (1 hour expiry)
url = storage.get_signed_url("private/file.txt", expires=3600)
from cloud_storage_manager import SyncManager
# Sync local directory to cloud
sync = SyncManager(storage)
sync.sync_to_cloud(
local_dir="/path/to/local",
remote_prefix="backup/2024/",
exclude=["*.tmp", "*.log"],
delete_remote=True # Remove files not in local
)
# Sync from cloud to local
sync.sync_from_cloud(
remote_prefix="data/",
local_dir="/path/to/download",
include=["*.csv", "*.json"]
)
# Copy between different providers
source = StorageManager(Provider.AWS_S3)
dest = StorageManager(Provider.ALIYUN_OSS)
# Stream copy without downloading locally
from cloud_storage_manager import CrossProviderCopy
copier = CrossProviderCopy(source, dest)
copier.copy("s3/path/file.zip", "oss/path/file.zip")
upload(local_path, remote_path) - Upload filedownload(remote_path, local_path) - Download filedelete(remote_path) - Delete fileexists(remote_path) - Check if file existslist_objects(prefix='') - List files with prefixget_size(remote_path) - Get file sizeget_signed_url(remote_path, expires) - Get temporary URLset_acl(remote_path, acl) - Set access controlsync_to_cloud(local_dir, remote_prefix, **options) - Upload syncsync_from_cloud(remote_prefix, local_dir, **options) - Download synccompare(local_dir, remote_prefix) - Compare differencesSee examples/ directory for complete examples.
cd /root/.openclaw/workspace/skills/cloud-storage-manager
python -m pytest tests/ -v
MIT License