Vue.js - AWS S3 (Vue.js 설정 부분)
Web/JavaScript

Vue.js - AWS S3 (Vue.js 설정 부분)

Vue.js 설정 부분

AWS-SDK 설치 및 기본 설정

  • 터미널 → npm install --save aws-sdk
  • import 및 기본 설정 하기
    • 생성한 Cognito 자격 증명 풀 ID는 Cognito 자격 증명 풀 편집에서 볼 수 있음
      Cognito 자격 증명 풀 ID
    • AWS.config.region: 지역 설정
    • AWS.config.credentials: ID 정책 설정
    • new AWS.S3: 객체 인스턴스 생성
    • params: 기본 파라미터 설정
import AWS from 'aws-sdk'

AWS.config.region = 'ap-northeast-2(지역)';
AWS.config.credentials = new AWS.CognitoIdentityCredentials({
  IdentityPoolId: '생성한 Cognito 자격 증명 풀 ID',
});

const s3 = new AWS.S3( {
  params: {
    Bucket: '생성한 버킷 객체 이름'
  }
});

 

파일 리스트 가져오기 (listObjectV2)

 let file_key_lists = [];
 
 // Prefix: 특정 폴더 설정
 // MaxKeys: 가져올 최대 파일 개수
 s3.listObjectsV2({Prefix: 'img'}, (err, data) => {
  if (err) {
    // 에러 처리 코드
    throw err;
  } else {
    let contents = data.Contents;
    // contents: 파일 객체 리스트
    contents.forEach((content) => {
      // content.Key: 파일 이름(경로)
      file_key_lists.push(content.Key);
    });
  }
});

 

파일 URL 가져오기 (getSignedUrl)

  • 단순 Preview 기능 이용
// Key: 파일 이름(경로)
s3.getSignedUrl({Key: 'PATH'}, (err, url) => {
  if (err) {
    // 에러 처리 코드
    throw err;
  } else {
    console.log(url);
  }
});

 

파일 Stream 가져오기 (getObject)

  • Preview, Download 기능 등 이용
// Key: 파일 이름(경로)
s3.getObject({Key: 'PATH'}, (err, data) => {
  if (err) {
    // 에러 처리 코드
    throw err;
  } else {
    // data URL
    let dataURL = "data:image/jpeg;base64," + encode(data.Body);
 
    // blob URL
    const blob = new Blob([data.Body], {
        type: data.ContentType
    });
    const blobURL = URL.createObjectURL(blob);
  }
});

 

참고 링크 1: https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/s3-example-photos-view-full.html

 

Amazon S3 버킷에서 사진 보기: 전체 코드 보기 - AWS SDK for JavaScript

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

참고 링크 2: https://talkit.tistory.com/580

 

[javascript] AWS S3에서 파일 읽기

var AWS = require('aws-sdk'); const s3 = new AWS.S3({ accessKeyId: "아이디", secretAccessKey: "시크릿키" }); var params = {Bucket: 'myBucket', Key: 'myImageFile.jpg'}; var file = require('fs').creat..

talkit.tistory.com

참고 링크 3: https://mygumi.tistory.com/320

 

Amazon S3: 파일 관리를 위한 aws-sdk 활용법 :: 마이구미

이 글은 아마존 웹 서비스(AWS) 중 S3 를 다뤄본다. 주요 목적은 S3 를 통해 CMS, FTP 와 같은 리소스 관리 시스템을 구축에 필요한 aws-sdk 의 내부 함수들을 다뤄본다. 자바스크립트를 기준으로 진행

mygumi.tistory.com

 

'Web > JavaScript' 카테고리의 다른 글

Vue.js - Kakao Map API  (0) 2021.08.31
Vue.js - DOM 요소 접근  (0) 2021.08.30
Vue.js - AWS S3 (AWS 설정 부분)  (0) 2021.08.29
JavaScript - Axios (Ajax)  (0) 2021.08.29
Vue.js - Composition API  (0) 2021.08.29