import { TosClient, TosClientError, TosServerError } from '@volcengine/tos_harmonyos_sdk';
const client = new TosClient({
accessKeyId: "Provide your ak",
accessKeySecret: "Provide your sk",
securityToken: 'Provide your securityToken',
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);
function printObjectVersions(data: ListObjectVersionsOutput) {
console.log('Versions.length:', data.Versions.length);
for (const obj of data.Versions) {
console.log('Obj Key:', obj.Key);
console.log('Obj Version ID:', obj.VersionId);
console.log('Obj Last Modified:', obj.LastModified);
console.log('Obj Is Latest Version:', obj.IsLatest);
console.log('DeleteMarkers.length:', data.DeleteMarkers.length);
for (const deleteMarker of data.DeleteMarkers) {
console.log('Delete Maker Key:', deleteMarker.Key);
console.log('Delete Maker Version ID:', deleteMarker.VersionId);
console.log('Delete Maker Last Modified:', deleteMarker.LastModified);
console.log('Delete Maker Is Latest Version:', deleteMarker.IsLatest);
let versionIdMarker = '';
const res = await client.listObjectVersions({
VersionIDMarker: versionIdMarker,
console.log('Sub Dir Length:', res.CommonPrefixes.length);
for (const prefix of res.CommonPrefixes) {
console.log('Sub Dir:', prefix.Prefix);
printObjectVersions(res);
keyMarker = res.NextKeyMarker ?? '';
versionIdMarker = res.NextVersionIdMarker ?? '';