[TIL]22.01.07

박주홍·2022년 1월 7일
0

Today I Learned

목록 보기
94/104

  • Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
  • 이미 응답을 한번 보냈는데 두 번째 응답을 보내려 시도하기 때문에 서버가 충돌하므로 오류 메시지가 표시됩니다.



  • AccessControlListNotSupported: The bucket does not allow ACLs
  • AccessControlList 지원되지 않음: 버킷이 ACL을 허용하지 않습니다.

    ACL(Access Control List)
    공식문서 참고자료 =>
    https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/userguide/managing-acls.html

    스택오버플로우 =>
    https://stackoverflow.com/questions/70333681/for-an-amazon-s3-bucket-deplolyent-from-guithub-how-do-i-fix-the-error-accesscon

    보기 편한 블로깅 자료 =>
    https://real-dongsoo7.tistory.com/101

    ACL: Access Control List 의 약자로, 버켓 주인과 오브젝트 주인이 다를 경우의 권한 설정, log 저장용 버킷에 대한 권한 설정 등등에 사용하는 것이 권장사항입니다.

    Policy: 우리가 사용할 권한 설정입니다. 모든 아마존 S3 권한을 policy 를 통해서 설정할 수 있습니다.

    버킷권한 설정 JSON

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "Statement1",
                "Effect": "Allow",
                "Principal": "*",
                "Action": "s3:GetObject",
                "Resource": "arn:aws:s3:::ongin/*",
                "Condition": {
                    "StringEquals": {
                        "s3:ExistingObjectTag/public": "yes"
                    }
                }
            }
        ]
    }


  • multer를 router에 먹일려고 하는 데, 실제로 잘 먹히지 않았다.
  • 예시코드

    router.post('/spring/create', upload.single('img'), galleryController.springCreate);
    
    
    //galleryController.springCreate
    
    springCreate: (req, res) => {
        // CREATE 하는 코드
        // 404뜨는 이유는 파일이 제대로 전송이 안받아지는 것 같다
        // upload.array로 하는데 자꾸 req.file로 받아서 아무것도 없었던 거다. 멍청이..
        // 애초에 post가 받아지지 않는다 app.js에서 그냥 받아서 넘기는 식으로 해야겠다. 이 함수 폐쇄
        console.log(req.file);
        if (req.file === undefined) {
          console.log('실행됌');
          res.status(404).send('NOT OK')
        }
    
        console.log(req.file);
        // fs.readFile('../../img', (err, data)=>{
        //   if(err){
        //     console.log('err : ', err);
        //   }
        //   console.log('data : ', data);
        // }),
        const param = {
          'Bucket': 'ongin',
          'Key': 'test.png',
          'ACL': 'public-read', // 모든 사람들이 읽을 수 있기위해서 ACL는 권한이란 뜻임
          'Body': 'test',
          'ContentType': 'text'  // 파일이 어떤 자료형인지 알려주는 것 image/png
        }
    
        s3.upload(param, function (err, data) {
          if (err) {
            res.status(404).send('NOT OK');
            console.log('error : ', err);
            return ;
          }else{
            console.log('data : ', data);
            res.status(201).send('OKㅇㅂㅈㅇㅂㅈㅇㅂ');
          }
        });
    
      }
    
    profile
    고통없는 성장은 없다고 할 수 있겠다....

    0개의 댓글