Использование того же экземпляра s3 ("aws -sdk") с изменением учетных данных для каждого запроса - PullRequest
0 голосов
/ 20 января 2020

Дело:

  • У меня мультитенантная система, и у каждого арендатора есть свой контейнер, accessKeyId и accessSecret, и я создаю оболочку выше AWS .S3 для расширения некоторых функций.

Могу ли я использовать тот же экземпляр клиента s3, но изменить учетные данные на основе запрашивающих учетных данных пользователя?

Примерно так:

class S3Storage {
 private readonly s3: AWS.S3;

 constructor(config: S3Config) {
     this.s3 = new AWS.S3({
       accessKeyId: config.accessKeyId,
       secretAccessKey: config.secretAccessKey,
       apiVersion: config.apiVersion,
       region: config.region
     });
   }

 public myDownload (key: string, userData: any) {
  // alter credentials for this.s3 with the userData
 }
}

Или я должен создать Клиент s3 (с предоставленными userData) каждый раз, когда вызывается функция myDownload.

...