import { TosClient, TosClientError, TosServerError } from '@volcengine/tos-sdk';
const client = new TosClient({
accessKeyId: process.env['TOS_ACCESS_KEY'],
accessKeySecret: process.env['TOS_SECRET_KEY'],
region: "Provide your region",
endpoint: "Provide your endpoint",
function handleError(error) {
if (error instanceof TosClientError) {
console.log('Client Err Msg:', error.message);
console.log('Client Err Stack:', error.stack);
} else if (error instanceof TosServerError) {
console.log('Request ID:', error.requestId);
console.log('Response Status Code:', error.statusCode);
console.log('Response Header:', error.headers);
console.log('Response Err Code:', error.code);
console.log('Response Err Msg:', error.message);
console.log('unexpected exception, message: ', error);
const bucketName = 'node-sdk-test-bucket';
for (let truncated = true, continuationToken = ''; truncated; ) {
const { data } = await client.listObjectsType2({
continuationToken: continuationToken,
console.log('Sub Dir Length:', data.CommonPrefixes.length);
for (const prefix of data.CommonPrefixes) {
console.log('Sub Dir:', prefix.Prefix);
printObjectContents(data.Contents);
truncated = data.IsTruncated;
continuationToken = data.NextContinuationToken;
function printObjectContents(contents) {
console.log('Contents Length:', contents.length);
for (const obj of contents) {
console.log('Object Key:', obj.Key);
console.log('Object LastModified:', obj.LastModified);
console.log('Object ETag:', obj.ETag);
console.log('Object Size:', obj.Size);
console.log('Object Owner:', obj.Owner);
console.log('Object StorageClass:', obj.StorageClass);
console.log('Object HashCrc64ecma:', obj.HashCrc64ecma);