Amazon S3 버킷 생성 및 사용 - AWS SDK for JavaScript

곧 AWS SDK for JavaScript(v2)에 대한 지원이 종료될 예정임을 알려드립니다. AWS SDK for JavaScript v3로 마이그레이션하실 것을 권장합니다. 마이그레이션 날짜, 추가 세부 정보 및 방법에 대한 자세한 내용은 링크된 공지 사항을 참조하세요.

Amazon S3 버킷 생성 및 사용

JavaScript code example that applies to Node.js execution

이 Node.js 코드 예제는 다음을 보여 줍니다.

  • 계정에서 Amazon S3 버킷 목록을 가져오고 표시하는 방법

  • Amazon S3 버킷을 생성하는 방법

  • 지정된 버킷에 객체를 업로드하는 방법.

시나리오

이 예제에서는 일련의 Node.js 모듈을 사용하여 기존 Amazon S3 버킷 목록을 가져오고 버킷을 생성하며 지정된 버킷에 파일을 업로드합니다. Node.js 모듈은 다음 Amazon S3 클라이언트 클래스 메서드를 사용하여 Amazon S3 버킷에서 정보를 가져오고 파일을 업로드하기 위해 SDK for JavaScript를 사용합니다.

사전 필수 작업

이 예제를 설정하고 실행하려면 먼저 이러한 작업들을 완료해야 합니다.

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에서 찾을 수 있습니다.