UNPKG

@aws-sdk/middleware-sdk-s3

Version:

[![NPM version](https://img.shields.io/npm/v/@aws-sdk/middleware-sdk-s3/latest.svg)](https://www.npmjs.com/package/@aws-sdk/middleware-sdk-s3) [![NPM downloads](https://img.shields.io/npm/dm/@aws-sdk/middleware-sdk-s3.svg)](https://www.npmjs.com/package/@

32 lines (31 loc) 1.29 kB
import { HttpRequest } from "@smithy/core/protocols"; import { CONTEXT_ACCOUNT_ID, CONTEXT_ARN_REGION, CONTEXT_OUTPOST_ID } from "../constants"; import { getOutpostEndpoint } from "./getOutpostEndpoint"; const ACCOUNT_ID_HEADER = "x-amz-account-id"; const OUTPOST_ID_HEADER = "x-amz-outpost-id"; export const updateArnablesRequestMiddleware = (config) => (next, context) => async (args) => { const { request } = args; if (!HttpRequest.isInstance(request)) { return next(args); } if (context[CONTEXT_ACCOUNT_ID]) { request.headers[ACCOUNT_ID_HEADER] = context[CONTEXT_ACCOUNT_ID]; } if (context[CONTEXT_OUTPOST_ID]) { const { isCustomEndpoint } = config; const useFipsEndpoint = await config.useFipsEndpoint(); request.headers[OUTPOST_ID_HEADER] = context[CONTEXT_OUTPOST_ID]; request.hostname = getOutpostEndpoint(request.hostname, { isCustomEndpoint, regionOverride: context[CONTEXT_ARN_REGION], useFipsEndpoint, }); } return next(args); }; export const updateArnablesRequestMiddlewareOptions = { toMiddleware: "serializerMiddleware", relation: "after", name: "updateArnablesRequestMiddleware", tags: ["ACCOUNT_ID", "OUTPOST_ID", "OUTPOST"], };