먼저 aws-sdk module을(를) 사용하기 위해서는 IAM 키를 발급받아야 한다.
우측 액세스 키 관리 클릭
보안 자격 증명 페이지에서 새 액세스 키 만들기 클릭하고 키파일 다운로드
키 파일은 .csv 형태로 다운로드가 되고 파일 내에는 두 개의 키값이 존재한다.
aws-sdk를 사용하는 방법은 2가지가 있다.
1. C:\Uesrs\userName\.aws 에서 credentials 파일을 만들어서 키 값을 저장
- 이때 credentials 파일은 아무런 확장자가 없어야 한다.
- 파일명은 반드시 "credentials" 로 명명해야 한다.
2. json 파일을 만들어서 키 값을 저장
개인적으로 2번째 방법을 선호하는 편이다.
그럼 키 값은 csv에 있는 그대로를 넣으면 될까?
https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-configure-files.html
구성 및 자격 증명 파일 설정 - AWS Command Line Interface
이러한 설정은 전적으로 선택 사항입니다. 이러한 설정을 구성하지 않고도 aws s3 이전 명령을 성공적으로 사용할 수 있어야 합니다. 이러한 설정은 성능을 조정하거나 aws s3 명령을 실행 중인 특
docs.aws.amazon.com
위 html 문서로 접속하고 아래로 스크롤링을 조금 하다 보면 다음과 같은 내용이 나온다.
aws_access_key_id
aws_secret_access_key
키 값은 이렇게 2개를 명시해야 한다.
위 파일은 credentials 파일에서의 사용법을 적어놨으니 저대로 사용하면 된다.
두 번쨰 방법인 json파일의 경우에는 다음과 같이 구성한다.
파일명은 자유롭게 적되, 확장자는 .json으로 생성한다.
해당 파일은 node.js 프로젝트 루트 폴더에 저장해두면 된다.
마지막으로 .gitignore를 만들어서 이 프로젝트가 git에 올려질 경우, 보안에 민감한 처리나 용량 문제 해결을 위해 다음과 같이 구성한다. (필자는 aws.json 이라고 생성했다.)
node_modules/
aws.json
.env
.env.*
이제 파일 구성까지 끝났으니 본격적으로 사용해보자.
npm install aws-sdk
aws-sdk 설치
node.js 프로젝트 내 config 폴더를 만들고 awsconfig.js 생성
경로는 다음과 같이 나온다.
// nodeproject/config/awsconfig.js
const AWS = require("aws-sdk");
// json 파일을 읽을 때
AWS.config.loadFromPath('./aws.json');
// credentials 파일을 읽을 때
AWS.config.getCredentials((err)=>{
if(err) throw err;
console.log(AWS.config.credentials.accessKeyId);
});
module.exports = AWS;
test.js를 만들고 다음 코드를 작성한다.
const AWS = require('./config/awsconfig');
const main = () => {
// S3 객체 받아오기
const s3 = new AWS.S3({apiVersion:"2006-03-01"});
// 버킷명 지정
const param = {
Bucket : "store.devpark.ml"
};
// S3 버킷 생성
s3.createBucket(param, (err)=>{
if(err) throw err;
console.log("생성 완료");
});
};
main();
버킷 명은 되도록이면 본인이 사용하고 있는 도메인을 맞춰주는 것이 좋다.
특정하기 힘든 버킷명의 경우 버킷명이 잘못되었거나, 존재하지 않는다는 등의 오류를 반환한다.
node test.js
제대로 실행되는가 테스트해보자.
aws-sdk와 연동이 문제 없이 되는 듯 하다.
그렇다면 해당 버킷에 폴더를 하나 만들어보자.
const AWS = require('./config/awsconfig');
const main = () => {
const s3 = new AWS.S3({ apiVersion: "2006-03-01" });
const params = {
Bucket: "store.devpark.ml",
Key: "TestFolder/"
}
s3.putObject(params, (err, data) => {
if (err) throw err;
console.log(data);
});
};
main();
성공적으로 폴더가 생성되었다.
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html
Class: AWS.S3 — AWS SDK for JavaScript
The modular AWS SDK for JavaScript (v3), the latest major version of AWS SDK for JavaScript, is now stable and recommended for general use. For more information, see the Migration Guide and API Reference. Class: AWS.S3 Inherits: AWS.Service Object AWS.Serv
docs.aws.amazon.com
JavaScriptSDK V2 버전사용법이다. 필요한 기능은 여기서 참고하도록 하자.
'aws' 카테고리의 다른 글
S3 버킷에 정책 설정하기 (0) | 2022.01.13 |
---|---|
aws S3 버킷 생성하기 (0) | 2022.01.13 |
route53을 이용하여 도메인 연결하기 (0) | 2021.12.04 |
IAM을 이용하여 계정에 사용자 추가하기 (0) | 2021.11.23 |
aws ec2 가상머신 만들기 (0) | 2021.11.22 |