菜单
开源

getObject

S3Client.getObject 从存储桶下载对象。

默认情况下,对象的数据将被视为字符串。为了将对象的数据视为二进制内容,并以 ArrayBuffer 格式接收数据,您可以将 additionalHeaders 传递给 getObject,并将 Accept 头部设置为 application/octet-stream

参数

参数类型描述
bucketNamestring要从中获取对象的存储桶名称。
objectKeystring要下载的对象名称。
additionalHeadersObject随请求发送的附加头部。

返回值

类型描述
Promise< Object>一个 Promise,它将以描述并包含下载内容的 Object 格式完成。

示例

从 AWS S3 下载文本文件

JavaScript
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 下载二进制文件

JavaScript
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 脚本