AWS SDK for JavaScript v2 のサポート終了が間近に迫っていることが発表
Amazon S3 バケットの作成と使用
この Node.js コード例は以下を示しています。
-
アカウントの Amazon S3 バケットのリストを取得して表示する方法。
-
Amazon S3 バケットを作成する方法。
-
指定バケットにオブジェクトをアップロードする方法。
シナリオ
この例では、一連の Node.js モジュールを使用して既存の Amazon S3 バケットのリストを取得し、バケットを作成して、指定したバケットにファイルをアップロードします。これらの Node.js モジュールは SDK for JavaScript を使用し、 Amazon S3 クライアントクラスのこれらのメソッドを使用して、Amazon S3 バケットから情報を取得し、Amazon S3 バケットにファイルをアップロードします。
前提条件タスク
この例をセットアップして実行するには、まず次のタスクを完了する必要があります。
-
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
サービスオブジェクトを作成します。このモジュールは 2 つのコマンドライン引数を取ります。1 つ目は送信先バケットを指定するためのもので、もう 1 つはアップロードするファイルを指定するためのものです。
Amazon S3 サービスオブジェクトの upload
メソッドを呼び出すために必要なパラメータで変数を作成します。Bucket
パラメータ内のターゲットバケットの名前を指定します。Key
パラメータは、Node.js path
モジュールを使用して取得できる、選択したファイルの名前に設定されています。The 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