Node.jsでAmazon S3にアップロードする方法(アクセスコントロール編)

前回、普通にS3にアップロードする方法を調べました。
今回は規定のアクセスコントロールを使って、アップロード時に表示・ダウンロードなどのパーミッションを設定する方法をメモします。
S3のアクセスコントロールの種類は公式サイトに記載があります。
Access Control List (ACL) Overview - Amazon Simple Storage Service
全パターンでアップロードしてみました。

app.js

var AWS = require('aws-sdk');

AWS.config.update({
	accessKeyId: 'ACCESS_KEY',
	secretAccessKey: 'SECRET_KEY',
	//region: 'us-east-1'
	region: 'ap-northeast-1'
});

var s3 = new AWS.S3();

var params = [
	{
		Bucket: 'zebevogue',
		Key: 'private',
		ACL:'private',
		Body: 'private'
	},
	{
		Bucket: 'zebevogue',
		Key: 'public-read',
		ACL:'public-read',
		Body: 'public-read'
	},
	{
		Bucket: 'zebevogue',
		Key: 'public-read-write',
		ACL:'public-read-write',
		Body: 'public-read-write'
	},
	{
		Bucket: 'zebevogue',
		Key: 'authenticated-read',
		ACL:'authenticated-read',
		Body: 'authenticated-read'
	},
	{
		Bucket: 'zebevogue',
		Key: 'bucket-owner-read',
		ACL:'bucket-owner-read',
		Body: 'bucket-owner-read'
	},
	{
		Bucket: 'zebevogue',
		Key: 'bucket-owner-full-control',
		ACL:'bucket-owner-full-control',
		Body: 'bucket-owner-full-control'
	},
	{
		Bucket: 'zebevogue',
		Key: 'log-delivery-write',
		ACL:'log-delivery-write',
		Body: 'log-delivery-write'
	}
] ;

for (var i in params) {
	s3.client.putObject(params[i]).done(function(resp) {
		console.log("Successfully uploaded data to " + resp.params.Key);
	});
}

それぞれのACLでアップロードしてみました。
例えば、authenticated-readの場合、以下のようなパーミッションになります。

※コールバック関数の引数respにはURLなども確認できますので、事後処理に使えます。