

AWS SDK for JavaScript v2 はサポート終了となりました。[AWS SDK for JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/) に移行することをお勧めします。その他の詳細、移行方法については、こちらの[発表内容](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/)を参照してください。

# Amazon S3 バケットの作成と使用
<a name="s3-example-creating-buckets"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/ja_jp/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**この Node.js コード例は以下を示しています。**
+ アカウントの Amazon S3 バケットのリストを取得して表示する方法。
+ Amazon S3 バケットを作成する方法。
+ 指定バケットにオブジェクトをアップロードする方法。

## シナリオ
<a name="s3-example-creating-buckets-scenario"></a>

この例では、一連の Node.js モジュールを使用して既存の Amazon S3 バケットのリストを取得し、バケットを作成して、指定したバケットにファイルをアップロードします。これらの Node.js モジュールは SDK for JavaScript を使用し、 Amazon S3 クライアントクラスのこれらのメソッドを使用して、Amazon S3 バケットから情報を取得し、Amazon S3 バケットにファイルをアップロードします。
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listBuckets-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listBuckets-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#createBucket-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#createBucket-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listObjects-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#upload-property)
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucket-property](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#deleteBucket-property)

## 前提条件タスク
<a name="s3-example-creating-buckets-prerequisites"></a>

この例をセットアップして実行するには、まず次のタスクを完了する必要があります。
+ Node.js をインストールします。Node.js をインストールする方法の詳細については、[Node.js ウェブサイト](https://nodejs.org)を参照してください。
+ ユーザーの認証情報を使用して、共有設定ファイルを作成します。共有認証情報ファイルの提供の詳細については、[共有認証情報ファイルから Node.js に認証情報をロードする](loading-node-credentials-shared.md) を参照してください。

## SDK の設定
<a name="s3-example-creating-buckets-configure-sdk"></a>

グローバル設定オブジェクトを作成してからコードのリージョンを設定することで、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 バケットのリストを表示する
<a name="s3-example-creating-buckets-list-buckets"></a>

`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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_listbuckets.js)にあります。

## Amazon S3 バケットの作成
<a name="s3-example-creating-buckets-new-bucket"></a>

`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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_createbucket.js)にあります。

## Amazon S3 バケットへのファイルのアップロード
<a name="s3-example-creating-buckets-upload-file"></a>

`s3_upload.js` というファイル名で Node.js モジュールを作成します。前に示したように、SDK が設定されていることを確認します。`AWS.S3` サービスオブジェクトを作成します。このモジュールは 2 つのコマンドライン引数を取ります。1 つ目は送信先バケットを指定するためのもので、もう 1 つはアップロードするファイルを指定するためのものです。

Amazon S3 サービスオブジェクトの `upload` メソッドを呼び出すために必要なパラメータで変数を作成します。`Bucket` パラメータ内のターゲットバケットの名前を指定します。`Key` パラメータは、Node.js `path` モジュールを使用して取得できる、選択したファイルの名前に設定されています。The `Body` パラメータはファイルの内容に設定されます。これは Node.js `createReadStream` モジュールから `fs` を使用して取得できます。

```
// 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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_upload.js)にあります。

## Amazon S3 バケットでオブジェクトを一覧表示する
<a name="s3-example-listing-objects"></a>

`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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_listobjects.js)にあります。

## Amazon S3 バケットの削除
<a name="s3-example-deleting-buckets"></a>

`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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javascript/example_code/s3/s3_deletebucket.js)にあります。