如果您只需获取对象中的部分数据,您可以使用范围下载,下载指定范围内的数据,本文介绍如何指定范围下载对象。
tos:GetObject
权限,具体操作,请参见权限配置指南。tos:GetObjectVersion
权限,具体操作,请参见权限配置指南。以下代码用于指定 Start/End 下载桶中对象的部分数据。
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", // 填写 Bucket 所在地域。以华北2(北京)为例,"Provide your region" 填写为 cn-beijing。 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); } else { console.log('unexpected exception, message: ', error); } } async function main() { try { const bucketName = 'node-sdk-test-bucket'; // 目标桶 const objectName = 'example_dir/example.txt'; // 目标对象 // 返回 data.content 为 stream const res = await client.getObject({ Bucket: bucketName, Key: objectName, RangeStart: 32, RangeEnd: 64, }); const str = buffer.from(res.Content.read(100)).toString() res.Content.close(); console.log('object size:', str.length); // 如果对象是一串文字,可以 toString 解析 console.log('data string:', str); } catch (error) { handleError(error); } } main();