Дело:
- У меня мультитенантная система, и у каждого арендатора есть свой контейнер, 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
.