.claude/skills/alicloud-oss/SKILL.md
# Alibaba Cloud OSS (Object Storage Service) Manage Alibaba Cloud OSS using the @alicloud/oss20190517 TypeScript SDK. Use when working with object storage buckets, objects, multipart uploads, bucket configurations (lifecycle, versioning, CORS, encryption, replication, WORM), live streaming channels, and static website hosting. Covers all 90 APIs of the OSS 2019-05-17 version. ## General Instructions - **SDK Package**: `@alicloud/oss20190517` (with `@alicloud/openapi-client`, `@alicloud/gatewa
npx skillsauth add agents-infrastructure/licell .claude/skills/alicloud-ossInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Manage Alibaba Cloud OSS using the @alicloud/oss20190517 TypeScript SDK. Use when working with object storage buckets, objects, multipart uploads, bucket configurations (lifecycle, versioning, CORS, encryption, replication, WORM), live streaming channels, and static website hosting. Covers all 90 APIs of the OSS 2019-05-17 version.
@alicloud/oss20190517 (with @alicloud/openapi-client, @alicloud/gateway-oss, @alicloud/gateway-spi, @alicloud/tea-util, @alicloud/openapi-util, @alicloud/tea-typescript)ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRETregionId — endpoint is auto-resolved to oss-{regionId}.aliyuncs.combucket and key are function arguments, not in Request objectsmarker/nextMarker or continuationToken/nextContinuationToken), not page numbersReadable streams for the body fielderror.code (e.g., NoSuchBucket, NoSuchKey, AccessDenied)Read references/quickstart.md for installation, authentication, endpoints, storage classes, ACL values, pagination patterns, and error codes.
The SDK provides 90 APIs organized into 6 functional domains:
Create, list, delete, and query bucket information, ACL, location, and regions. List objects in buckets.
→ Read references/bucket.md for: putBucket, listBuckets, getBucketInfo, getBucketLocation, getBucketAcl, putBucketAcl, deleteBucket, describeRegions, listObjects, listObjectsV2, listObjectVersions
Configure bucket lifecycle, versioning, CORS, logging, website hosting, referer, encryption, request payment, transfer acceleration, tags, inventory, and policy.
→ Read references/bucket-config.md for: getBucketLifecycle, putBucketLifecycle, deleteBucketLifecycle, getBucketVersioning, putBucketVersioning, getBucketCors, putBucketCors, deleteBucketCors, getBucketLogging, putBucketLogging, deleteBucketLogging, getBucketWebsite, putBucketWebsite, deleteBucketWebsite, getBucketReferer, putBucketReferer, getBucketEncryption, putBucketEncryption, deleteBucketEncryption, getBucketRequestPayment, putBucketRequestPayment, getBucketTransferAcceleration, putBucketTransferAcceleration, getBucketTags, putBucketTags, deleteBucketTags, getBucketInventory, listBucketInventory, putBucketInventory, deleteBucketInventory, getBucketPolicy, putBucketPolicy, deleteBucketPolicy
Cross-region and same-region data replication, replication progress monitoring, and compliance retention (WORM) policies.
→ Read references/bucket-replication.md for: getBucketReplication, getBucketReplicationLocation, getBucketReplicationProgress, putBucketReplication, deleteBucketReplication, initiateBucketWorm, getBucketWorm, abortBucketWorm, completeBucketWorm, extendBucketWorm
Upload, download, copy, delete, append, head, meta, ACL, symlink, tagging, restore, select, and CORS preflight.
→ Read references/object.md for: putObject, getObject, copyObject, appendObject, deleteObject, deleteMultipleObjects, headObject, getObjectMeta, postObject, restoreObject, selectObject, createSelectObjectMeta, optionObject, getObjectAcl, putObjectAcl, getSymlink, putSymlink, getObjectTagging, putObjectTagging, deleteObjectTagging
Multipart upload operations for large files (>100MB recommended, >5GB required). Minimum part size 100KB (last part exempt).
→ Read references/multipart.md for: initiateMultipartUpload, uploadPart, uploadPartCopy, completeMultipartUpload, abortMultipartUpload, listMultipartUploads, listParts
RTMP-based live streaming channel management, status monitoring, history, and VOD playlist generation.
→ Read references/live-channel.md for: putLiveChannel, getLiveChannelInfo, getLiveChannelStat, getLiveChannelHistory, listLiveChannel, putLiveChannelStatus, deleteLiveChannel, postVodPlaylist, getVodPlaylist
Read references/workflows.md for 8 step-by-step workflows:
import Client from '@alicloud/oss20190517';
import { Config } from '@alicloud/openapi-client';
const client = new Client(new Config({
accessKeyId: process.env.ALIBABA_CLOUD_ACCESS_KEY_ID,
accessKeySecret: process.env.ALIBABA_CLOUD_ACCESS_KEY_SECRET,
regionId: 'cn-hangzhou',
}));
import Client, { PutObjectRequest } from '@alicloud/oss20190517';
import { Readable } from 'stream';
await client.putObject('my-bucket', 'path/to/file.txt', new PutObjectRequest({
body: Readable.from(Buffer.from('content')),
contentType: 'text/plain',
}));
import Client, { GetObjectRequest } from '@alicloud/oss20190517';
const { body } = await client.getObject('my-bucket', 'path/to/file.txt', new GetObjectRequest({}));
const chunks: Buffer[] = [];
for await (const chunk of body.body as Readable) {
chunks.push(Buffer.from(chunk));
}
const content = Buffer.concat(chunks);
import Client, { ListObjectsV2Request } from '@alicloud/oss20190517';
let token: string | undefined;
const all: any[] = [];
do {
const { body } = await client.listObjectsV2('my-bucket', new ListObjectsV2Request({
maxKeys: 1000, prefix: 'data/', continuationToken: token,
}));
all.push(...(body.contents || []));
token = body.isTruncated ? body.nextContinuationToken || undefined : undefined;
} while (token);
import Client, { DeleteMultipleObjectsRequest, Delete, DeleteObjectsRequestObject } from '@alicloud/oss20190517';
await client.deleteMultipleObjects('my-bucket', new DeleteMultipleObjectsRequest({
delete: new Delete({
object: ['a.txt', 'b.txt'].map(k => new DeleteObjectsRequestObject({ key: k })),
quiet: true,
}),
}));
scripts/setup_client.ts — Reusable client factory with region, STS, and custom endpoint supportscripts/examples.ts — 18 ready-to-use functions covering bucket, object, multipart, lifecycle, CORS, tags, symlink, and restore operationspath/to/file.txt, not /path/to/file.txtcompleteBucketWorm is irreversible — data cannot be deleted until retention expirestools
Deploy and manage Alibaba Cloud Serverless applications using the licell CLI. Covers deploy, release, functions, env vars, domains, DNS, logs, OSS, database, cache, and Supabase.
development
Manage Alibaba Cloud VPC networking using the @alicloud/vpc20160428 TypeScript SDK. Use when working with virtual private clouds, VSwitches, route tables, EIPs, NAT gateways, VPN gateways, Express Connect, BGP routing, network ACLs, flow logs, traffic mirroring, IPv6, HAVIP, gateway endpoints, and resource tagging. Covers all 396 APIs of the VPC 20160428 version.
development
Manage Alibaba Cloud Redis (Tair / R-KVStore) using the @alicloud/r-kvstore20150101 TypeScript SDK. Use when working with Redis or Tair instances, accounts, backups, security (whitelist/SSL/TDE/audit), parameters, monitoring, cluster scaling, direct connection, Tair Custom instances, and resource tagging. Covers all 157 APIs of the R-KVStore 20150101 version.
tools
Manage Alibaba Cloud RDS using the @alicloud/rds20140815 TypeScript SDK. Use when working with relational database instances (MySQL, PostgreSQL, SQL Server, MariaDB), accounts, databases, backups, security, monitoring, parameters, read-only instances, database proxy, migration, cross-region DR, PostgreSQL extensions, RDS Custom instances, and resource tagging. Covers all 398 APIs of the RDS 20140815 version.