or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

bucket.mdclient.mdcluster.mdimage.mdindex.mdmultipart.mdobject.mdrtmp.mdsts.md
tile.json

tessl/npm-ali-oss

Alibaba Cloud Object Storage Service client library for Node.js and browser environments

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
npmpkg:npm/ali-oss@6.23.x

To install, run

npx @tessl/cli install tessl/npm-ali-oss@6.23.0

index.mddocs/

ali-oss

ali-oss is a comprehensive JavaScript client library for Alibaba Cloud Object Storage Service (OSS) that enables developers to interact with cloud object storage from both Node.js and browser environments. It provides a full-featured API for managing buckets, uploading and downloading objects, handling multipart uploads, managing object metadata and permissions, and performing advanced operations like streaming, progress tracking, and STS token management.

Package Information

  • Package Name: ali-oss
  • Package Type: npm
  • Language: JavaScript/TypeScript
  • Installation: npm install ali-oss --save
  • Minimum Node.js: >= 8.0.0
  • Browser Support: IE >= 10, modern browsers (Chrome, Firefox, Safari, Edge)

Core Imports

Node.js (CommonJS)

const OSS = require('ali-oss');

Browser (ES6 Modules)

import OSS from 'ali-oss';

Browser (Script Tag)

<script src="./node_modules/ali-oss/dist/aliyun-oss-sdk.min.js"></script>
<script>
  // OSS is available as global variable
  const store = new OSS({ /* options */ });
</script>

Basic Usage

Create Client Instance

const OSS = require('ali-oss');

const store = new OSS({
  region: 'oss-cn-hangzhou',
  accessKeyId: 'your-access-key-id',
  accessKeySecret: 'your-access-key-secret',
  bucket: 'your-bucket-name'
});

Basic Operations

// Upload an object
const result = await store.put('my-object.txt', 'Hello, World!');
console.log('Upload result:', result);

// Download an object
const object = await store.get('my-object.txt');
console.log('Downloaded content:', object.content.toString());

// List objects
const list = await store.list();
console.log('Objects:', list.objects);

// Delete an object
await store.delete('my-object.txt');

STS Token Usage

const store = new OSS({
  region: 'oss-cn-hangzhou',
  accessKeyId: 'your-sts-access-key',
  accessKeySecret: 'your-sts-access-secret',
  stsToken: 'your-sts-token',
  bucket: 'your-bucket-name'
});

Architecture

ali-oss is built around several key components:

  • Core Client: Main client class providing unified API for all OSS operations
  • Modular Design: Functionality organized into specialized modules (bucket, object, multipart, etc.)
  • Browser Compatibility: Full browser support with appropriate shims and polyfills
  • Authentication: Support for AccessKey, STS tokens, and custom authentication
  • Connection Management: Keep-alive HTTP connections and automatic retry mechanisms
  • Stream Support: Efficient handling of large files through streaming APIs

Capabilities

Client Configuration

Core client setup, authentication, and configuration options. Essential for initializing OSS connections and managing client settings.

function OSS(options: ClientOptions): OSSClient;

interface ClientOptions {
  region?: string;
  accessKeyId: string;
  accessKeySecret: string;
  stsToken?: string;
  bucket?: string;
  endpoint?: string;
  timeout?: number;
  agent?: Agent;
  httpsAgent?: Agent;
  maxSockets?: number;
}

Client Configuration

Bucket Management

Comprehensive bucket operations including creation, configuration, access control, and advanced features like lifecycle management, CORS, and encryption.

async function listBuckets(query?: ListBucketsQuery, options?: RequestOptions): Promise<ListBucketsResult>;
async function useBucket(name: string): void;
async function getBucketInfo(name: string, options?: RequestOptions): Promise<BucketInfo>;
async function deleteBucket(name: string, options?: RequestOptions): Promise<DeleteBucketResult>;

Bucket Management

Object Operations

Core object storage operations for uploading, downloading, and managing files. Includes metadata handling, access control, and URL generation.

async function put(name: string, file: ObjectSource, options?: PutObjectOptions): Promise<PutObjectResult>;
async function get(name: string, file?: string | WriteStream, options?: GetObjectOptions): Promise<GetObjectResult>;
async function delete(name: string, options?: RequestOptions): Promise<DeleteObjectResult>;
async function list(query?: ListObjectsQuery, options?: RequestOptions): Promise<ListObjectsResult>;

Object Operations

Multipart Upload

High-performance multipart upload capabilities for large files with automatic part management, progress tracking, and resume functionality.

async function multipartUpload(name: string, file: ObjectSource, options?: MultipartUploadOptions): Promise<MultipartUploadResult>;
async function initMultipartUpload(name: string, options?: InitMultipartUploadOptions): Promise<InitMultipartUploadResult>;
async function uploadPart(name: string, uploadId: string, partNumber: number, file: ObjectSource, start?: number, end?: number, options?: RequestOptions): Promise<UploadPartResult>;

Multipart Upload

Image Processing

Specialized image processing operations including transformations, EXIF data extraction, and style management for images stored in OSS.

function ImageClient(options: ImageClientOptions): ImageClient;

interface ImageClient {
  async get(name: string, file?: string, options?: ImageGetOptions): Promise<ImageGetResult>;
  async getInfo(name: string, options?: RequestOptions): Promise<ImageInfo>;
  async putStyle(styleName: string, style: ImageStyle, options?: RequestOptions): Promise<PutStyleResult>;
}

Image Processing

Live Streaming (RTMP)

RTMP live streaming capabilities for creating and managing live channels, controlling streaming status, and generating VOD content.

async function putChannel(id: string, conf: ChannelConfig, options?: RequestOptions): Promise<PutChannelResult>;
async function getChannelStatus(id: string, options?: RequestOptions): Promise<ChannelStatus>;
async function createVod(id: string, name: string, time: VodTime, options?: RequestOptions): Promise<CreateVodResult>;

Live Streaming

Security Token Service (STS)

STS operations for obtaining temporary credentials and assuming roles for secure, time-limited access to OSS resources.

function STS(options: STSOptions): STSClient;

interface STSClient {
  async assumeRole(role: string, policy?: string, expiration?: number, session?: string, options?: RequestOptions): Promise<AssumeRoleResult>;
}

Security Token Service

Cluster Client

High-availability cluster client providing automatic failover, load balancing, and health checking across multiple OSS endpoints.

function ClusterClient(options: ClusterOptions): ClusterClient;

interface ClusterOptions {
  clusters: ClusterConfig[];
  schedule?: 'roundRobin' | 'masterSlave';
  retryMax?: number;
  retryDelay?: number;
}

Cluster Client