mirror of
https://github.com/strapi/strapi.git
synced 2025-11-02 02:44:55 +00:00
fix(providers): aws credentials (#18812)
This commit is contained in:
parent
3ba8a83b4a
commit
b77b41cda4
@ -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);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
};
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user