package com.softwaremill.common.backup;
import org.jets3t.service.S3ServiceException;
import org.jets3t.service.impl.rest.httpclient.RestS3Service;
import org.jets3t.service.model.S3Object;
import org.jets3t.service.security.AWSCredentials;
import java.io.File;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
/**
* @author Adam Warski (adam at warski dot org)
*/
public class S3Upload {
private final String accessKeyId;
private final String secretAccessKey;
private final String bucketName;
private final String fileName;
private final String directory;
public S3Upload(String accessKeyId, String secretAccessKey, String bucketName, String fileName, String directory) {
this.accessKeyId = accessKeyId;
this.secretAccessKey = secretAccessKey;
this.bucketName = bucketName;
this.fileName = fileName;
this.directory = directory;
}
public void upload() throws S3ServiceException, IOException, NoSuchAlgorithmException {
RestS3Service s3 = new RestS3Service(new AWSCredentials(accessKeyId, secretAccessKey));
S3Object object = new S3Object(new File(fileName));
if (directory != null) {
object.setKey(directory + "/" + fileName);
}
s3.putObject(bucketName, object);
}
public static void main(String[] args) throws IOException, NoSuchAlgorithmException, S3ServiceException {
if (args.length < 4 || args.length > 5) {
System.out.println("Usage: S3Upload accessKeyId secretAccessKey bucketName fileName [directory]");
} else {
new S3Upload(args[0], args[1], args[2], args[3], args.length == 5 ? args[4] : null).upload();
}
}
}