EasyManua.ls Logo

Amazon Redshift - Page 126

Amazon Redshift
131 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
String sourceDir = getProperty(config, "src_dir");
SecretKey mySymmetricKey = new SecretKeySpec( Base64.decodeBase64(masterSym
metricKeyBase64.getBytes()) , "AES");
EncryptionMaterials materials = new EncryptionMaterials(mySymmetricKey);
AmazonS3 s3 = new AmazonS3EncryptionClient(credentials, materials);
s3.setEndpoint(s3Endpoint);
// Upload all files.
uploadAllFilesToS3(s3, bucketName, s3Prefix, new File(sourceDir) );
}
private static void uploadAllFilesToS3(AmazonS3 s3, String bucketName, String
s3Prefix, final File folder) {
System.out.println("Reading files from directory "+folder);
for (final File fileEntry : folder.listFiles()) {
if (! fileEntry.isDirectory()) { // Skip sub directories.
int retryCount = 0;
boolean done = false;
while ( !done ) {
try {
uploadToS3(s3, bucketName, s3Prefix, fileEntry);
done = true;
}catch (Exception e ){
retryCount++;
if ( retryCount > MAX_RETRY_COUNT ) {
System.out.println("Retry count exceeded max retry count
"+MAX_RETRY_COUNT+". Giving up");
throw new RuntimeException(e);
}
// Do retry after 10 seconds.
System.out.println("Failed to upload file "+fileEntry+". Retry
ing...");
try {
Thread.sleep(10 * 1000);
}catch(Exception te) {}
}
}// while
}// for
}
}
private static void uploadToS3(AmazonS3 s3, String bucketName, String s3Prefix,
File file) {
try {
System.out.println("Uploading a new object to S3 object '"+s3Prefix+"'
from file "+file);
String key = s3Prefix+"/"+file.getName();
s3.putObject(new PutObjectRequest(bucketName, key, file) );
API Version 2012-12-01
122
Amazon Redshift Management Guide
Example: Uploading Client-Side Encrypted Data

Table of Contents

Related product manuals