Documentation for automated readers
A curated documentation index is available at: https://grafana.com/llms.txt
A complete documentation index is available at: https://grafana.com/llms-full.txt
These indexes can help with page discovery before fetching individual documents.
This page is also available in Markdown, which may be easier for automated readers and AI tools to parse than HTML. The Markdown version is available at https://grafana.com/docs/k6/next/javascript-api/jslib/aws/s3client/getobject.md, or by sending Accept: text/markdown to https://grafana.com/docs/k6/next/javascript-api/jslib/aws/s3client/getobject/. For broader documentation discovery, the curated index is available at https://grafana.com/llms.txt and the complete index is available at https://grafana.com/llms-full.txt.
This is documentation for the next version of Grafana k6 documentation. For the latest stable release, go to the latest version.
getObject
S3Client.getObject downloads an object from a bucket.
As a default, the object’s data will be treated as a string. In order to treat the object’s data as binary content, and
receive the data as an ArrayBuffer, you can pass additionalHeaders to getObject, with the Accept header set to
application/octet-stream.
Parameters
| Parameter | Type | Description |
|---|---|---|
| bucketName | string | Name of the bucket to fetch the object from. |
| objectKey | string | Name of the object to download. |
| additionalHeaders | Object | Additional headers to send with the request. |
Returns
Example
Downloading a text file from AWS S3
import exec from 'k6/execution';
import {
AWSConfig,
S3Client,
} from 'https://jslib.k6.io/aws/0.14.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));
}A k6 script that will download an object from a bucket
Downloading a binary file from AWS S3
import exec from 'k6/execution';
import {
AWSConfig,
S3Client,
} from 'https://jslib.k6.io/aws/0.14.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`);
}A k6 script that will download a binary object from a bucket
Was this page helpful?
Related resources from Grafana Labs

