TIL 20.12.29

suseodd·2020년 12월 29일
0

12/29 TIL

S3 관련 사항

다운로드 가능한 파일

다운로드 가능한 ContentType은 application/octet-stream이다. s3 업로드 설정시 아래와 같이 작업하면된다.

s3.upload(
    {
        ContentType: 'application/octet-stream'
    }
);

application/octet-stream에 대해 MDN은 아래와 같이 설명하고 있다.

application/octet-stream

이 타입은 이진 파일을 위한 기본값입니다. 이 타입은 실제로 잘 알려지지 않은 이진 파일을 의미하므로, 브라우저는 보통 자동으로 실행하지 않거나 실행해야 할지 묻기도 합니다. Content-Disposition 헤더가 값 attachment 와 함게 설정되었고 'Save As' 파일을 제안하는지 여부에 따라 브라우저가 그것을 다루게 됩니다.

대개 브라우저가 default로 이에 해당하는 mimetype을 가진 파일의 경우 접근할건지 물어본다고 한다. 그런데, IE의 경우는 아직 해당 타입에 대한 업데이트가 이루어져 있지않아 별도의 처리를 해주어야 한다.(IE....😒😒)

s3.upload(
    {
        ContentType: 'application/octet-stream',
        ContentDisposition: `attachment;filename=`"${encodeURIComponent(filename)}\"`
    }
);

S3에 접근해서 파일 읽어오기

AWS는 접근권한이 명확하기 때문에 S3에 올라와있는 파일을 읽어오는 것도 기본적으로 제한되어 있다. 따라서 S3에 업로드되는 파일들을 읽어오기 위해서는 별도의 처리를 해주어야 하는데 그것이 ACL(Access Control LIst) 필드이다. 만일 업로드되는 S3 파일들을 외부에서 읽을 수 있게 하고 싶으면 해당 필드에 public-read라는 값을 할당해 주면 된다.

s3.upload(
    {
        ContentType: 'application/octet-stream',
        ContentDisposition: `attachment;filename=`"${encodeURIComponent(filename)}\"`,
        ACL: 'public-read'
    }
);
profile
백엔드 개발자 디디라고합니다.

0개의 댓글