s3-copier

1.0.4 • Public • Published

s3-copier

S3 Copier module for copying contents between S3 buckets. Content can be multiple files/directory/bucket to be copied.

Installation

  npm install s3-copier

Usage

Initiating S3 Copier module

	var S3_Copier = require("s3-copier");

	var param = {
		region: "ANY REGION",			//	AWS region
		secretAccessKey: "*****************",	//	AWS secret access key
		accessKeyId: "*********"		//	AWS access key ID
	};

	var options = {
		PartSize: 1024 * 1024 * 100,		//	Optional: Defaults to 100 MBytes
		PartConcurrency: 10,			//	Optional: Defaults to 10 parallel/async operations
		RetryCount: 3,				//	Optional: Defaults to 3 retries on failure
		RetryDelay: 2000,			//	Optional: Defaults to 2 seconds retry delay
		ExpireDuration: 12 * 60 * 60 * 1000,	//	Optional: Defaults to 12 Hours time for expiring incomplete mulipart upload
		SingleConcurrency: 40,			//	Optional: Defaults to 40 parallel/async copy operations for data < 5 GBytes
		MultipartConcurrency: 10		//	Optional: Defaults to 10 parallel/async copy operations for data > 5 GBytes
		Verbose: true				//	Optional: Defaults to show logs
	}

	var s3Copier = new S3_Copier(param, options);	//	S3_Copier(param[, options])

Please refer AWS-Documentation for more param related options.

Performing directory copy

s3Copier.copy({
	Source: {
		Bucket: "SOURCE_AWS_BUCKET_NAME",
		Key: "Bar/Foo"
	},
	Destination: {
		Bucket: "DESTINATION_AWS_BUCKET_NAME",
		Prefix: "Bar/"
	}
}, function(err, data) {
	console.log(err ? err : data);
});

Performing contents of directory copy

s3Copier.copy({
	Source: {
		Bucket: "SOURCE_AWS_BUCKET_NAME",
		Key: "Bar/Foo/"
	},
	Destination: {
		Bucket: "DESTINATION_AWS_BUCKET_NAME",
		Prefix: "Bar/"
	}
}, function(err, data) {
	console.log(err ? err : data);
});

Performing file copy

s3Copier.copy({
	Source: {
		Bucket: "SOURCE_AWS_BUCKET_NAME",
		Key: "Foo/Bar/hello.txt"
	},
	Destination: {
		Bucket: "DESTINATION_AWS_BUCKET_NAME",
		Prefix: "Bar/"
	}
}, function(err, data) {
	console.log(err ? err : data);
});

Performing file copy by renaming on destination

s3Copier.copy({
	Source: {
		Bucket: "SOURCE_AWS_BUCKET_NAME",
		Key: "Foo/Bar/hello.txt"
	},
	Destination: {
		Bucket: "DESTINATION_AWS_BUCKET_NAME",
		Key: "Bar/world.txt"
	}
}, function(err, data) {
	console.log(err ? err : data);
});

Performing multiple file/directory copy operations

s3Copier.copy([{
	Source: {
		Bucket: "SOURCE_AWS_BUCKET_NAME",
		Key: "Foo/Bar/"
	},
	Destination: {
		Bucket: "DESTINATION_AWS_BUCKET_NAME",
		Prefix: "Foo/"
	}
}, {
	Source: {
		Bucket: "SOURCE_AWS_BUCKET_NAME",
		Key: "Foo/Bar/hello.txt"
	},
	Destination: {
		Bucket: "DESTINATION_AWS_BUCKET_NAME",
		Key: "Bar/world.txt"
	}
}, {
	Source: {
		Bucket: "SOURCE_AWS_BUCKET_NAME",
		Key: "Foo/Bar/hello.txt"
	},
	Destination: {
		Bucket: "DESTINATION_AWS_BUCKET_NAME",
		Prefix: "Bar/"
	}
}], function(err, data) {
	console.log(err ? err : data);
});

Performing bucket to bucket copy operations

s3Copier.copy({
	Source: {
		Bucket: "SOURCE_AWS_BUCKET_NAME",
		Key: "/"
	},
	Destination: {
		Bucket: "DESTINATION_AWS_BUCKET_NAME"
	}
}, function(err, data) {
	console.log(err ? err : data);
});

License

MIT © Omkar Mujumdar

Package Sidebar

Install

npm i s3-copier

Weekly Downloads

31

Version

1.0.4

License

MIT

Unpacked Size

18.7 kB

Total Files

6

Last publish

Collaborators

  • omkarsm