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