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';
const objectName = 'example_dir/example.txt';
const date = new Date('2024-02-22 18:33:00');
const res = await client.getObjectV2({
let allContent = Buffer.from([]);
for await (const chunk of res.data.content) {
allContent = Buffer.concat([allContent, chunk]);
console.log('object size:', allContent.length);
console.log('data string:', allContent.toString());
if (error instanceof TosServerError) {
if (error.statusCode === 304) {
console.log('Object not modify, Request ID:', error.requestId);
} = await client.getObjectV2({
ifUnmodifiedSince: date,
let allContent = Buffer.from([]);
for await (const chunk of content) {
allContent = Buffer.concat([allContent, chunk]);
console.log('object size:', allContent.length);
console.log('data string:', allContent.toString());
if (error instanceof TosServerError) {
if (error.statusCode === 412) {
console.log('Object modify, Request ID:', error.requestId);