getObject
S3Client.getObject
从存储桶下载对象。
默认情况下,对象的数据将被视为字符串。为了将对象的数据视为二进制内容,并以 ArrayBuffer
格式接收数据,您可以将 additionalHeaders
传递给 getObject
,并将 Accept
头部设置为 application/octet-stream
。
参数
参数 | 类型 | 描述 |
---|---|---|
bucketName | string | 要从中获取对象的存储桶名称。 |
objectKey | string | 要下载的对象名称。 |
additionalHeaders | Object | 随请求发送的附加头部。 |
返回值
类型 | 描述 |
---|---|
Promise< Object> | 一个 Promise,它将以描述并包含下载内容的 Object 格式完成。 |
示例
从 AWS S3 下载文本文件
import exec from 'k6/execution';
import {
AWSConfig,
S3Client,
} from 'https://jslib.k6.io/aws/0.13.0/s3.js';
const awsConfig = new AWSConfig({
region: __ENV.AWS_REGION,
accessKeyId: __ENV.AWS_ACCESS_KEY_ID,
secretAccessKey: __ENV.AWS_SECRET_ACCESS_KEY,
});
const s3 = new S3Client(awsConfig);
const testBucketName = 'test-jslib-aws';
const testFileKey = 'bonjour.txt';
export default async function () {
const objects = await s3.listObjects(testBucketName);
// If our test object does not exist, abort the execution.
if (objects.filter((o) => o.key === testFileKey).length == 0) {
exec.test.abort();
}
// Let's download our test object and print its content
const object = await s3.getObject(testBucketName, testFileKey);
console.log(JSON.stringify(object));
}
一个从存储桶下载对象的 k6 脚本
从 AWS S3 下载二进制文件
import exec from 'k6/execution';
import {
AWSConfig,
S3Client,
} from 'https://jslib.k6.io/aws/0.13.0/s3.js';
const awsConfig = new AWSConfig({
region: __ENV.AWS_REGION,
accessKeyId: __ENV.AWS_ACCESS_KEY_ID,
secretAccessKey: __ENV.AWS_SECRET_ACCESS_KEY,
});
const s3 = new S3Client(awsConfig);
const testBucketName = 'test-jslib-aws';
const testFileKey = 'quick.pdf';
export default async function () {
// Download an object from S3, and require from the `getObject` operation
// to treat it as a binary content's file, and return an Object who's data
// parameter is an ArrayBuffer.
const s3Object = await s3.getObject(testBucketName, testFileKey, {
Accept: 'application/octet-stream',
});
console.log(`Successfully downloaded a binary file of size ${s3Object.data.byteLength} bytes`);
}
一个从存储桶下载二进制对象的 k6 脚本