Menu

Important: This documentation is about an older version. It's relevant only to the release noted, many of the features and functions have been updated or replaced. Please view the current version.

Open source

Object

Object is returned by the S3Client.* methods that query S3 buckets’ objects. Namely, listObjects, getObject, putObject, and deleteObject. The Object construct describes an Amazon S3 object.

NameTypeDescription
Object.keystringThe S3 object’s name.
Object.lastModifiednumberThe S3 object’s last modification date.
Object.etagstringThe S3 object’s etag is a hash of the object. The ETag reflects changes only to the contents of an object, not its metadata. The ETag may or may not be an MD5 digest of the object data.
Object.sizesizeThe S3 object’s size in bytes.
Object.storageClassSTANDARD | REDUCED_REDUNDANCY | GLACIER | STANDARD_IA | INTELLIGENT_TIERING | DEEP_ARCHIVE | OUTPOSTS | GLACIER_IRThe S3 object’s class of storage used to store it.
Object.datastring or bytes or nullThe S3 object’s content.

Example

JavaScript
import exec from 'k6/execution';

import {
  // listBuckets,
  AWSConfig,
  S3Client,
} from 'https://jslib.k6.io/aws/0.11.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 query a S3 bucket’s objects and print its content and metadata