AWS SDK 3 WriteGetObjectResponseCommand проблема

В моем текущем проекте мы пытаемся перейти на AWS SDK версии 3 (Javascript). Мы используем лямбда-выражения объекта s3 и столкнулись с проблемой с командой.

WriteGetObjectResponseCommand код:

      import { S3Client, S3 } from '@aws-sdk/client-s3';
const s3Client = new S3Client({});

async function passTransformedPhoto(
  body: Buffer,
  outputRoute: string,
  outputToken: string,
): Promise<WriteGetObjectResponseCommandOutput> {
  try {
    const writeGetObjectParams: WriteGetObjectResponseCommandInput = {
      RequestRoute: outputRoute,
      RequestToken: outputToken,
      Body: body,
    };

    const command = new WriteGetObjectResponseCommand(writeGetObjectParams);

    return s3Client.send(command);
  } catch (e) {
    console.log('Error happens in passTransformedPhoto', e);
  }

Та же проблема с агрегированным клиентом:

      import { S3Client, S3 } from '@aws-sdk/client-s3';
const s3Aggregated = new S3({});

async function passTransformedPhoto(body: Buffer, outputRoute: string, outputToken: string) {
  try {
    const result = await s3Aggregated.writeGetObjectResponse({
      RequestRoute: outputRoute,
      RequestToken: outputToken,
      Body: body,
    });
    return result;
  } catch (e) {
    console.log('Error happens in passTransformedPhoto', e);
  }
}

Ошибка:

      INFO    TypeError: Cannot destructure property 'service' of 'bucketName' as it is undefined.
    at getEndpointFromArn (/var/task/node_modules/@aws-sdk/middleware-bucket-endpoint/dist/cjs/bucketHostname.js:26:13)
    at Object.bucketHostname (/var/task/node_modules/@aws-sdk/middleware-bucket-endpoint/dist/cjs/bucketHostname.js:17:13)
    at /var/task/node_modules/@aws-sdk/middleware-bucket-endpoint/dist/cjs/bucketEndpointMiddleware.js:47:67
    at processTicksAndRejections (internal/process/task_queues.js:95:5)

Среда:

      @aws-sdk/client-s3: 3.18.0
Node.js: v 14.17.0
typescript: 4.3.2

Мы очень ценим любую помощь или разъяснения по этому вопросу.

1 ответ

Возможно, попробуйте включить все ожидаемые параметры конфигурации S3Client:

      const config = {
    region: <region>,
    bucketEndpoint: true,
}

const client = new S3Client(config);
Другие вопросы по тегам