From 8f781470d1023c647525e19be10dbd759fdb8cd3 Mon Sep 17 00:00:00 2001 From: AndreyVaskovskiy Date: Thu, 20 Oct 2016 11:42:47 +0300 Subject: [PATCH] Support copy operation on storage #430 --- lib/pkgcloud/amazon/storage/client/files.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/pkgcloud/amazon/storage/client/files.js b/lib/pkgcloud/amazon/storage/client/files.js index f43cc52aa..580b643fb 100644 --- a/lib/pkgcloud/amazon/storage/client/files.js +++ b/lib/pkgcloud/amazon/storage/client/files.js @@ -106,6 +106,23 @@ exports.download = function (options) { }; +exports.copy = function (options, callback) { + var self = this, + containerName = options.sourceContainer instanceof base.Container ? options.sourceContainer.name : options.sourceContainer, + destContainerName = options.destinationContainer instanceof base.File ? options.destinationContainer.name : options.destinationContainer, + destinationFile = options.destinationFile || options.sourceFile; + + self.s3.copyObject({ + Bucket: destContainerName, + Key: destinationFile instanceof base.File ? destinationFile.name : destinationFile, + CopySource: options.sourceFile instanceof base.File ? options.sourceFile.fullPath : containerName + '/' + options.sourceFile + }, function (err, data) { + return err + ? callback(err) + : callback(null, data); + }); +}; + exports.getFile = function (container, file, callback) { var containerName = container instanceof base.Container ? container.name : container, self = this;