Skip to content

A S3 file zip and uploading tool

Notifications You must be signed in to change notification settings

sjenit/s3-archiver

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 

Repository files navigation

S3 Archiver

S3 Archiver is designed to zip and upload a large number of files from a given S3 bucket back to a file on the bucket. This allows for easier file backups or for serving a large number of files.

Usage

npm install s3-archiver

Setup

var s3Archiver = require('s3-archiver');

var archiver = new s3Archiver({
  accessKeyId: "XXX",
  secretAccessKey: "XXX",
  region: "us-west-1",
  bucket: "XXX"
}, {
  folder: "images",
  filePath: __dirname,
  filePrefix: "profile-pics/",
  finalizing: finalizeArchive
});

Parameters

  • AWS Config
    • accessKeyId - (String) S3 Access Key
    • secretAccessKey - (String) S3 Secret Access Key
    • region - (String) S3 Region
    • bucket - (String) S3 Bucket Name
  • Local Config
    • folder - (String) The folder in the bucket you want the files from (eg. images)
    • filePath - (String) The absolute file path for the temporary file to be saved to
    • filePrefix - (String) The path inside the zip to place the files
    • finalizing - (Function(Object, Function())) Intercepts the finalizing stage of the archive.

Example

archiver.zipFiles(["images/1S0QWQLR1Z.jpg", "images/91D6WX13ZG.png"], "downloads/backup-1.zip", {
  ACL: "public-read"
}, function(err, data) {
  console.log(data.Location);
});

Parameters

  • File Names - (String Array) The list of file keys that you want to archive
  • Output File Name - (String) The file key for the output zip in S3
  • Upload Options - (Object) Upload parameters to be applied to the S3 upload (More info)
  • Callback - (Function(Object, Object)) Called when the zip file has been uploaded
    • Error - (Object) If there was an S3 error upon uploading (or null if no error)
    • Data - (Object) The S3 upload data upon successful upload

Intercepting Archive

var s3Archiver = require('s3-archiver');

var archiver = new s3Archiver({
  accessKeyId: "XXX",
  secretAccessKey: "XXX",
  region: "us-west-1",
  bucket: "XXX"
}, {
  finalizing: function(archive, finalize) {
    //Add files, change permissions, etc.
    archive.append(anotherFile, {name: 'anotherFile.png'});
    //Must call finalize to complete the archiving
    finalize();
  }
});

About

A S3 file zip and uploading tool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%