저작권 안내
- 책 또는 웹사이트의 내용을 복제하여 다른 곳에 게시하는 것을 금지합니다.
- 책 또는 웹사이트의 내용을 발췌, 요약하여 강의 자료, 발표 자료, 블로그 포스팅 등으로 만드는 것을 금지합니다.
AWS API, CLI 활용하기
이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30
S3
S3에 파일을 올리는 방법은 다음과 같습니다.
- fs.readFile 함수로 hello.jpg 파일을 읽습니다.
- Bucket: 파일을 올릴 S3 버킷 이름을 설정합니다.
- Key: S3 버킷에 저장할 객체 이름을 설정합니다.
- ACL: 접근 권한입니다. private, public-read, public-read-write, authenticated-read, bucket-owner-read, bucket-owner-full-control를 사용할 수 있습니다.
- Body: S3 객체의 데이터입니다. 문자열 형식, 버퍼 형식을 사용할 수 있습니다. 아래 코드에서는 fs.readFile 함수에서 읽은 데이터를 사용합니다.
- ContentType: MIME 타입입니다. 파일에서 확장자가 없을 때는 반드시 MIME 타입을 설정해야 합니다. 확장자가 있는 파일은 확장자에 따라 자동으로 설정되므로 이 항목을 설정하지 않아도 됩니다. 하지만 HTTP에서 주로 사용하는 확장자가 아닐 때는 자동으로 설정되지 않으므로 MIME 타입을 설정해주어야 합니다.
- Metadata: S3 전용 메타데이터입니다.
- ServerSideEncryption: 서버에 저장될 때 암호화 방식입니다. AES256을 사용할 수 있으며 이 옵션을 삭제하면 암호화하지 않고 저장됩니다.
- StorageClass: 스토리지 옵션입니다. STANDARD, REDUCED_REDUNDANCY를 사용할 수 있으며 이 옵션을 삭제하면 STANDARD로 저장됩니다.
S3 버킷을 생성하는 방법은 '11.1 S3 버킷 생성하기'를 참조하기 바랍니다.
s3_1.js
var fs = require('fs');
var AWS = require('aws-sdk');
AWS.config.loadFromPath('./config.json');
var s3 = new AWS.S3();
fs.readFile('./hello.jpg', function (err, data) {
var params = {
Bucket: 'examplebucket10', // 필수
Key: 'hello.jpg', // 필수
ACL: 'public-read',
Body: data,
ContentType: 'image/jpeg',
Metadata: {
someKey: 'Hello Metadata'
},
ServerSideEncryption: 'AES256',
StorageClass: 'STANDARD',
};
s3.putObject(params, function (err, data) {
if (err)
console.log(err, err.stack);
else
console.log(data);
});
});
AWS CLI
$ aws s3api put-object --bucket examplebucket10 --key hello.jpg --acl public-read --body ./hello.jpg --content-type "image/jpeg" --metadata "someKey=Hello Metadata" --server-side-encryption AES256 --storage-class STANDARD
S3 버킷에서 파일을 받는 방법은 다음과 같습니다.
- Bucket: 파일을 받을 S3 버킷 이름을 설정합니다.
- Key: 받을 S3 객체의 이름을 설정합니다.
- fs.writeFile 함수로 data.Body를 저장합니다.
s3_2.js
var fs = require('fs');
var AWS = require('aws-sdk');
AWS.config.loadFromPath('./config.json');
var s3 = new AWS.S3();
var params = {
Bucket: 'examplebucket10', // 필수
Key: 'hello.jpg', // 필수
};
s3.getObject(params, function (err, data) {
if (err)
console.log(err, err.stack);
else {
console.log(data);
fs.writeFile('./hello.jpg', data.Body);
}
});
AWS CLI
$ aws s3api get-object --bucket examplebucket10 --key hello.jpg hello.jpg
다른 함수들의 사용 방법은 다음 링크를 참조하기 바랍니다.
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html
저작권 안내
이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.- 블로그, 게시판 등에 퍼가는 것을 금지합니다.
- 비공개 포스트에 퍼가는 것을 금지합니다.
- 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
- 링크 및 SNS 공유는 허용합니다.
Published
2014-09-30