import { DataTransferType, 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: 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 = 'harmony-sdk-test-bucket';
const objectName = 'example_dir/example.txt';
const filePath = './example_dir/multipartExample';
const checkpointFile = './example_dir/example.checkpoint';
await client.downloadFile({
CheckpointFile: checkpointFile,
DataTransferStatusChange(event){
if (event.Type === DataTransferType.Started) {
console.log('Data Transfer Started');
} else if (event.Type === DataTransferType.RW) {
const percent = ((event.ConsumedBytes / event.TotalBytes) * 100).toFixed(2);
console.log(`Once Read:${event.RWOnceBytes},ConsumerBytes/TotalBytes: ${event.ConsumedBytes}/${event.TotalBytes},${percent}%`);
} else if (event.Type === DataTransferType.Succeed) {
const percent = ((event.ConsumedBytes / event.TotalBytes) * 100).toFixed(2);
console.log(`Data Transfer Succeed, ConsumerBytes/TotalBytes:${event.ConsumedBytes}/${event.TotalBytes},${percent}%`);
} else if (event.Type === DataTransferType.Failed) {
console.log('Data Transfer Failed');