설치
1 const AWS = require ("aws-sdk" );
자격증명 global credential file을 통해 자격증명을 할 수도 있고 다양한 방법이 있다. 나는 간단하게 config.json
파일을 생성하여 사용했다.
(IAM 사용자 생성 후 sdk 사용을 위한 키-밸류 값들은 받아놓은 상태)
config.json
1 2 3 4 5 { "accessKeyId" : "" , "secretAccessKey" : "" , "region" : "" }
파일은 다음과 같이 불러올 수 있다.
1 AWS.config.loadFromPath("./config.json" );
S3 생성 및 리스팅 1 2 3 4 5 6 7 8 s3 = new AWS.S3(); s3.listBuckets((err, data ) => { if (err) console .log("ERROR," , err); console .log("SUCCESS" , data.Buckets); });
S3 접근 권한이 있는 계정이라면 해당 계정이 가지고있는 버킷들이 모두 출력 될 것이다.
S3 특정 버킷의 Object 조회 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 s3.listObjects({ Bucket : "examplebucket" , MaxKeys : 2 , }, function (err, data ) { if (err) console .log(err, err.stack); else console .log(data); })
그 외 옵션
Delimiter(String) : key를 그룹짓기위한 문자열
Encoding(String) : object key 값의 인코딩 형식을 지정할 수 있다. object key는 아무 Unicode 문자열을 포함할 수 있지만 XML 1.0 parser는 Unicode의 몇 문자열을 파싱할 수 없기 때문에 필요한 경우 인코딩 형식을 지정한다.
Prefix(String) : 특정 prefix로 시작하는 key만을 가져온다.
S3 특정 버킷에 Object 업로드 (multer-S3) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 s3.putObject({ Body : "<Binary String>" , Bucket : "examplebucket" , Key : "objectkey" , }, function (err, data ) { if (err) console .log(err, err.stack); else console .log(data); })
참고