Install
$ agentstack add skill-wangyendt-wayne-skills-aliyun-oss ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Pywayne Aliyun OSS
pywayne.aliyun_oss.OssManager provides a comprehensive toolkit for managing Aliyun OSS (Object Storage Service) buckets.
Quick Start
from pywayne.aliyun_oss import OssManager
# Initialize with write permissions
oss = OssManager(
endpoint="https://oss-cn-xxx.aliyuncs.com",
bucket_name="my-bucket",
api_key="your_api_key",
api_secret="your_api_secret"
)
# Initialize with read-only (anonymous) access
oss = OssManager(
endpoint="https://oss-cn-xxx.aliyuncs.com",
bucket_name="my-bucket",
verbose=False # Disable verbose output
)
Upload Operations
Upload a local file
oss.upload_file(key="data/sample.txt", file_path="./sample.txt")
Upload text content
oss.upload_text(key="config/settings.json", text='{"key": "value"}')
Upload an image (numpy array)
import cv2
image = cv2.imread("photo.jpg")
oss.upload_image(key="photos/photo.jpg", image=image)
Upload entire directory
oss.upload_directory(local_path="./local_folder", prefix="remote_folder/")
Download Operations
Download a single file
# Preserve directory structure: downloads/data/sample.txt
oss.download_file(key="data/sample.txt", root_dir="./downloads")
# Use only basename: downloads/sample.txt
oss.download_file(key="data/sample.txt", root_dir="./downloads", use_basename=True)
Download files with prefix
oss.download_files_with_prefix(prefix="photos/", root_dir="./downloads")
Download entire directory
oss.download_directory(prefix="photos/", local_path="./downloads")
List Operations
List all keys in bucket
keys = oss.list_all_keys() # Returns sorted list
List keys with prefix
keys = oss.list_keys_with_prefix(prefix="data/")
List directory contents (first level only)
contents = oss.list_directory_contents(prefix="data/")
# Returns: [("file1.txt", False), ("subdir", True), ...]
Read Operations
Read file content as string
content = oss.read_file_content(key="config/settings.json")
Check if file exists
if oss.key_exists("data/sample.txt"):
print("File exists")
Get file metadata
metadata = oss.get_file_metadata("data/sample.txt")
# Returns: {'content_length': 1234, 'last_modified': ..., 'etag': ..., 'content_type': ...}
Delete Operations
Delete a single file
oss.delete_file(key="data/sample.txt")
Delete files with prefix
oss.delete_files_with_prefix(prefix="temp/")
Copy and Move Operations
Copy object within bucket
oss.copy_object(source_key="data/original.txt", target_key="backup/original.txt")
Move object within bucket
oss.move_object(source_key="data/temp.txt", target_key="archive/temp.txt")
Important Notes
- Write permissions: Upload, delete, copy, and move operations require
api_keyandapi_secret - Anonymous access: Omit
api_keyandapi_secretfor read-only access - Directory handling: OSS doesn't have real directories - use prefixes (keys ending with
/) - Natural sorting:
list_all_keys()andlist_keys_with_prefix()use natural sorting by default - Verbose output: All methods print status messages when
verbose=True(default)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: wangyendt
- Source: wangyendt/wayne-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.