fix(providers): aws credentials (#18812)

This commit is contained in:
Christian 2023-11-17 12:17:25 +01:00 committed by GitHub
parent 3ba8a83b4a
commit b77b41cda4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 7 deletions

View File

@ -16,7 +16,7 @@ const defaultOptions = {
describe('Utils', () => {
describe('Extract credentials for V4 different aws provider configurations', () => {
test('[Legacy] Credentials directly in the options', async () => {
test('[Legacy] Credentials directly in the options', () => {
const options: InitOptions = {
accessKeyId,
secretAccessKey,
@ -30,7 +30,7 @@ describe('Utils', () => {
});
});
test('[Legacy] credentials directly in s3Options', async () => {
test('[Legacy] credentials directly in s3Options', () => {
const options: InitOptions = {
s3Options: {
accessKeyId,
@ -46,7 +46,7 @@ describe('Utils', () => {
});
});
test('Credentials in credentials object inside s3Options', async () => {
test('Credentials in credentials object inside s3Options', () => {
const options: InitOptions = {
s3Options: {
credentials: {
@ -63,5 +63,15 @@ describe('Utils', () => {
secretAccessKey,
});
});
test('Does not throw an error when credentials are not present', () => {
const options: InitOptions = {
s3Options: {
...defaultOptions,
},
};
const credentials = extractCredentials(options);
expect(credentials).toEqual(null);
});
});
});

View File

@ -76,11 +76,11 @@ const getConfig = ({ baseUrl, rootPath, s3Options, ...legacyS3Options }: InitOpt
"S3 configuration options passed at root level of the plugin's providerOptions is deprecated and will be removed in a future release. Please wrap them inside the 's3Options:{}' property."
);
}
const credentials = extractCredentials({ s3Options, ...legacyS3Options });
const config = {
...s3Options,
...legacyS3Options,
credentials: extractCredentials({ s3Options, ...legacyS3Options }),
...(credentials ? { credentials } : {}),
};
config.params.ACL = getOr(ObjectCannedACL.public_read, ['params', 'ACL'], config);

View File

@ -89,7 +89,7 @@ function getBucketFromAwsUrl(fileUrl: string): BucketInfo {
}
// TODO Remove this in V5 since we will only support the new config structure
export const extractCredentials = (options: InitOptions): AwsCredentialIdentity => {
export const extractCredentials = (options: InitOptions): AwsCredentialIdentity | null => {
// legacy
if (options.accessKeyId && options.secretAccessKey) {
return {
@ -115,5 +115,5 @@ export const extractCredentials = (options: InitOptions): AwsCredentialIdentity
};
}
throw new Error("Couldn't find AWS credentials.");
return null;
};