upload-to-s3
This module and script synchronises a local directory (or checked out git repo) onto an S3 bucket. Files are uploaded to or deleted from the S3 bucket. files are never changed in the local directory, unless downloadDir() is called.
Installation
Install nodejs from http://nodejs.org/download/, clone out the upload-to-s3 Repo, and install required modules:
git checkout https://github.com/HughePaul/upload-to-s3.git
cd upload-to-s3
npm install
Command-line Interface
Create a config file in JSON format:
{
"directory": "/path/to/directory",
"bucket": "bucketname",
"accessKeyId": "AWSAccessKey",
"secretAccessKey": "AWSAccessSecret",
"region": "eu-west-1",
"ACL": "public-read"
}
Run the sync script:
./upload-to-s3 config.json
AWS Permissions
The following permissions are required as a minimum for the user performing a file sync:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:ListBucket",
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource": [
"arn:aws:s3:::bucketname",
"arn:aws:s3:::bucketname/*"
]
}
]
}
Initialisation
var config = "directory": "/path/to/directory" "bucket": "bucketname" "accessKeyId": "AWSAccessKey" "secretAccessKey": "AWSAccessSecret" "region": "eu-west-1"; var uploadToS3 = config;
Events
uploadToS3; uploadToS3; uploadToS3; uploadToS3; uploadToS3; uploadToS3;
Methods
uploadToS3; uploadToS3; uploadToS3; uploadToS3; uploadToS3; uploadToS3;
Example
var config = directory: "/path/to/directory" bucket: "bucket-name" accessKeyId: "AWSAccessKey" secretAccessKey: "AWSAccessSecret" region: "eu-west-1"; config ;