곧 AWS SDK for JavaScript(v2)에 대한 지원이 종료될 예정임을 알려드립니다
Amazon S3 버킷 생성 및 사용
이 Node.js 코드 예제는 다음을 보여 줍니다.
-
계정에서 Amazon S3 버킷 목록을 가져오고 표시하는 방법
-
Amazon S3 버킷을 생성하는 방법
-
지정된 버킷에 객체를 업로드하는 방법.
시나리오
이 예제에서는 일련의 Node.js 모듈을 사용하여 기존 Amazon S3 버킷 목록을 가져오고 버킷을 생성하며 지정된 버킷에 파일을 업로드합니다. Node.js 모듈은 다음 Amazon S3 클라이언트 클래스 메서드를 사용하여 Amazon S3 버킷에서 정보를 가져오고 파일을 업로드하기 위해 SDK for JavaScript를 사용합니다.
사전 필수 작업
이 예제를 설정하고 실행하려면 먼저 이러한 작업들을 완료해야 합니다.
-
Node.js를 설치합니다. Node.js 설치에 대한 자세한 내용은 Node.js 웹 사이트
를 참조하세요. -
사용자 자격 증명을 사용하여 공유 구성 파일을 생성합니다. 공유 자격 증명 파일 제공에 대한 자세한 내용은 공유 인증 자격 증명 파일에서 Node.js에 인증 자격 증명 로드 섹션을 참조하세요.
SDK 구성
글로벌 구성 객체를 생성한 후 코드에 대한 리전을 설정하여 SDK for JavaScript를 구성합니다. 이 예제에서 리전이 us-west-2
로 설정되어 있습니다.
// Load the SDK for JavaScript var AWS = require('aws-sdk'); // Set the Region AWS.config.update({region: 'us-west-2'});
Amazon S3 버킷 목록 표시
파일 이름이 s3_listbuckets.js
인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성해야 합니다. Amazon Simple Storage Service에 액세스하려면 AWS.S3
서비스 객체를 생성합니다. Amazon S3 서비스 객체의 listBuckets
메서드를 직접 호출하여 버킷의 목록을 검색합니다. 콜백 함수의 data
파라미터에는 버킷을 표시하기 위한 맵 배열을 포함하는 Buckets
속성이 있습니다. 콘솔에 로그인하여 버킷 목록을 표시합니다.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); // Call S3 to list the buckets s3.listBuckets(function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Buckets); } });
예제를 실행하려면 명령줄에서 다음을 입력합니다.
node s3_listbuckets.js
이 샘플 코드는 GitHub
Amazon S3 버킷 생성
파일 이름이 s3_createbucket.js
인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성해야 합니다. AWS.S3
서비스 객체를 생성합니다. 이 모듈은 단일 명령줄 인수를 가져와서 새 버킷의 이름을 지정합니다.
새로 생성된 버킷의 이름을 포함하여 Amazon S3 서비스 객체의 createBucket
메서드를 직접 호출하는 데 사용되는 파라미터를 담을 변수를 추가합니다. Amazon S3가 버킷을 성공적으로 생성한 후 콜백 함수가 새 버킷의 위치를 콘솔에 로깅합니다.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); // Create the parameters for calling createBucket var bucketParams = { Bucket: process.argv[2], }; // call S3 to create the bucket s3.createBucket(bucketParams, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Location); } });
예제를 실행하려면 명령줄에서 다음을 입력합니다.
node s3_createbucket.js
BUCKET_NAME
이 샘플 코드는 GitHub
Amazon S3 버킷에 파일 업로드
파일 이름이 s3_upload.js
인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성해야 합니다. AWS.S3
서비스 객체를 생성합니다. 이 모듈은 두 개의 명령줄 인수를 가져옵니다. 첫 번째 인수는 대상 버킷을 지정하고 두 번째 인수는 업로드할 파일을 지정합니다.
Amazon S3 서비스 객체의 upload
메서드를 직접 호출하는 데 필요한 파라미터가 있는 변수를 생성합니다. 대상 버킷의 이름을 Bucket
파라미터에 제공합니다. Key
파라미터는 선택한 파일의 이름으로 설정되며, 이 이름은 Node.js path
모듈을 사용하여 가져올 수 있습니다. Body
파라미터는 파일의 콘텐츠로 설정되며, 이 콘텐츠는 Node.js fs
모듈의 createReadStream
을 사용하여 가져올 수 있습니다.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object var s3 = new AWS.S3({ apiVersion: "2006-03-01" }); // call S3 to retrieve upload file to specified bucket var uploadParams = { Bucket: process.argv[2], Key: "", Body: "" }; var file = process.argv[3]; // Configure the file stream and obtain the upload parameters var fs = require("fs"); var fileStream = fs.createReadStream(file); fileStream.on("error", function (err) { console.log("File Error", err); }); uploadParams.Body = fileStream; var path = require("path"); uploadParams.Key = path.basename(file); // call S3 to retrieve upload file to specified bucket s3.upload(uploadParams, function (err, data) { if (err) { console.log("Error", err); } if (data) { console.log("Upload Success", data.Location); } });
예제를 실행하려면 명령줄에서 다음을 입력합니다.
node s3_upload.js
BUCKET_NAME
FILE_NAME
이 샘플 코드는 GitHub
Amazon S3 버킷의 객체 나열
파일 이름이 s3_listobjects.js
인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성해야 합니다. AWS.S3
서비스 객체를 생성합니다.
읽을 버킷의 이름을 포함하여 Amazon S3 서비스 객체의 listObjects
메서드를 호출하는 데 사용되는 파라미터를 담을 변수를 추가합니다. 콜백 함수는 객체(파일)의 목록 또는 실패 메시지를 로깅합니다.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); // Create the parameters for calling listObjects var bucketParams = { Bucket: "BUCKET_NAME", }; // Call S3 to obtain a list of the objects in the bucket s3.listObjects(bucketParams, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });
예제를 실행하려면 명령줄에서 다음을 입력합니다.
node s3_listobjects.js
이 샘플 코드는 GitHub
Amazon S3 버킷 삭제
파일 이름이 s3_deletebucket.js
인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성해야 합니다. AWS.S3
서비스 객체를 생성합니다.
삭제할 버킷의 이름을 포함하여 Amazon S3 서비스 객체의 createBucket
메서드를 호출하는 데 사용되는 파라미터를 담을 변수를 추가합니다. 버킷을 삭제하려면 버킷이 비어 있어야 합니다. 콜백 함수는 성공 또는 실패 메시지를 로깅합니다.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); // Create params for S3.deleteBucket var bucketParams = { Bucket: "BUCKET_NAME", }; // Call S3 to delete the bucket s3.deleteBucket(bucketParams, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });
예제를 실행하려면 명령줄에서 다음을 입력합니다.
node s3_deletebucket.js
이 샘플 코드는 GitHub