Skip to content

Commit eed5dcc

Browse files
authored
fix(middleware-sdk-s3): remove error name check to allow for region redirect for HEAD operations (#5425)
1 parent f9841f0 commit eed5dcc

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

packages/middleware-sdk-s3/src/region-redirect-middleware.e2e.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ describe("S3 Global Client Test", () => {
2727
bucketNames = regionConfigs.map((config) => `${callerID.Account}-${randId}-redirect-${config.region}`);
2828
await Promise.all(bucketNames.map((bucketName, index) => deleteBucket(s3Clients[index], bucketName)));
2929
await Promise.all(bucketNames.map((bucketName, index) => s3Clients[index].createBucket({ Bucket: bucketName })));
30+
await Promise.all(bucketNames.map((bucketName, index) => s3Clients[index].headBucket({ Bucket: bucketName })));
3031
});
3132

3233
afterAll(async () => {
@@ -48,6 +49,7 @@ describe("S3 Global Client Test", () => {
4849
for (const bucketName of bucketNames) {
4950
for (const s3Client of s3Clients) {
5051
const objKey = `object-from-${await s3Client.config.region()}-client`;
52+
await s3Client.headObject({ Bucket: bucketName, Key: objKey });
5153
const { Body } = await s3Client.getObject({ Bucket: bucketName, Key: objKey });
5254
const data = await Body?.transformToString();
5355
expect(data).toEqual(testValue);

packages/middleware-sdk-s3/src/region-redirect-middleware.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,9 @@ export function regionRedirectMiddleware(clientConfig: PreviouslyResolved): Init
3535
try {
3636
return await next(args);
3737
} catch (err) {
38-
// console.log("Region Redirect", clientConfig.followRegionRedirects, err.name, err.$metadata.httpStatusCode);
3938
if (
4039
clientConfig.followRegionRedirects &&
41-
err.name === "PermanentRedirect" &&
40+
// err.name === "PermanentRedirect" && --> removing the error name check, as that allows for HEAD operations (which have the 301 status code, but not the same error name) to be covered for region redirection as well
4241
err.$metadata.httpStatusCode === 301
4342
) {
4443
try {

0 commit comments

Comments
 (0)