2020. 9. 22. 14:33

aws s3를 붙였는데...

 

처음에는 작동하다가, 패키지 업데이트 하고, 갑자기

aws s3 default is not a constructor 에러가 뜨더라....

 

아....진짜 웃긴건, 이전 소스로 커밋 되돌리기하면 되고....  

원복해서 패키지 업데이트한거 롤백해도..안되고....

 

그래서 결국 에러를 잡기로함...

 

위 에러를 찾아보니, app에서 여러군데에서 써서 그런거라고, 로컬변수를 글로벌 변수로 바꾸라는거다.

 

그래서  constructor(___) 안에 있는 private변수를 class로 올리고, public으로 바꾸니까 에러는 안뜨는데...

 

undefined 에러가 뜨더라.(ERROR TypeError: this.awsService is undefined) 

 

awsService를 만들어서, 불러와서 써는데, 거기에서 config 세팅하는 부분이 불러올때마다 setting이 되서,

 

벌써 aws가 세팅이 되어 있는데, 중복으로 하는거 같더라...

 

처음에 constructor 안에 S3세팅을 했는데,  아에 void클래스를 따로 만들어서, constructor에서는 

불러왔다.

 

    constructor() {
        this.setS3();
    }

    private setS3():void{
        const config = {
            bucketName: env.aws.bucketName,
            region: env.aws.region,
            accessKeyId: env.aws.accessKeyId,
            secretAccessKey: env.aws.secretAccessKey,
        };
        this.S3Client = new S3(config);
    }

 

이런식으로 했더니, 에러도 안뜨고, 잘 올라간다.

Posted by Tyson