/*
* Copyright (C) 2000 - 2014 TagServlet Ltd
*
* This file is part of Open BlueDragon (OpenBD) CFML Server Engine.
*
* OpenBD is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* Free Software Foundation,version 3.
*
* OpenBD is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OpenBD. If not, see http://www.gnu.org/licenses/
*
* Additional permission under GNU GPL version 3 section 7
*
* If you modify this Program, or any covered work, by linking or combining
* it with any of the JARS listed in the README.txt (or a modified version of
* (that library), containing parts covered by the terms of that JAR, the
* licensors of this Program grant you additional permission to convey the
* resulting work.
* README.txt @ http://www.openbluedragon.org/license/README.txt
*
* http://openbd.org/
* $Id: AmazonKey.java 2487 2015-01-22 22:40:49Z alan $
*/
package org.alanwilliamson.amazon;
import java.io.Serializable;
import com.amazonaws.services.s3.model.CannedAccessControlList;
import com.amazonaws.services.s3.model.StorageClass;
public class AmazonKey extends Object implements Serializable {
private static final long serialVersionUID = 1L;
private final String amzKey;
private final String amzSecret;
private final String amzRegion;
private String datasource;
public AmazonKey(String _amzKey, String _amzSecret) {
this(_amzKey, _amzSecret, "us-standard");
}
public AmazonKey(String _amzKey, String _amzSecret, String _amzRegion) {
amzKey = _amzKey;
amzSecret = _amzSecret;
amzRegion = _amzRegion;
}
public void setDataSource(String ds) {
datasource = ds.toLowerCase().trim();
}
public String getDataSource() {
return datasource;
}
public String getKey() {
return amzKey;
}
public String getSecret() {
return amzSecret;
}
public String getRegion() {
return amzRegion;
}
public com.amazonaws.services.s3.model.Region getAmazonRegion() {
if (amzRegion.equalsIgnoreCase("us-east") || amzRegion.equalsIgnoreCase("us-standard"))
return com.amazonaws.services.s3.model.Region.US_Standard;
else if (amzRegion.equalsIgnoreCase("us-west-1"))
return com.amazonaws.services.s3.model.Region.US_West;
else if (amzRegion.equalsIgnoreCase("us-west-2"))
return com.amazonaws.services.s3.model.Region.US_West_2;
else if (amzRegion.equalsIgnoreCase("cn-beijing"))
return com.amazonaws.services.s3.model.Region.CN_Beijing;
else if (amzRegion.equalsIgnoreCase("eu") || amzRegion.equalsIgnoreCase("eu_ireland"))
return com.amazonaws.services.s3.model.Region.EU_Ireland;
else if (amzRegion.equalsIgnoreCase("eu_frankfurt"))
return com.amazonaws.services.s3.model.Region.EU_Frankfurt;
else if (amzRegion.equalsIgnoreCase("ap-southeast-1") || amzRegion.equalsIgnoreCase("ap-singapore"))
return com.amazonaws.services.s3.model.Region.AP_Singapore;
else if (amzRegion.equalsIgnoreCase("ap-sydney"))
return com.amazonaws.services.s3.model.Region.AP_Sydney;
else if (amzRegion.equalsIgnoreCase("ap-northeast-1") || amzRegion.equalsIgnoreCase("ap-tokyo"))
return com.amazonaws.services.s3.model.Region.AP_Tokyo;
else if (amzRegion.equalsIgnoreCase("sa-east-1") || amzRegion.equalsIgnoreCase("sa-saopaulo"))
return com.amazonaws.services.s3.model.Region.SA_SaoPaulo;
else
return com.amazonaws.services.s3.model.Region.US_Standard;
}
public String getS3Host() {
if (amzRegion.equals("us-east") || amzRegion.equals("us-standard"))
return "https://s3.amazonaws.com/";
else if (amzRegion.equals("us-west-1"))
return "https://s3-us-west-1.amazonaws.com/";
else if (amzRegion.equals("us-west-2"))
return "https://s3-us-west-2.amazonaws.com/";
else if (amzRegion.equals("eu"))
return "https://s3-eu-west-1.amazonaws.com/";
else if (amzRegion.equals("ap-southeast-1"))
return "https://s3-ap-southeast-1.amazonaws.com/";
else if (amzRegion.equals("ap-southeast-2"))
return "https://s3-ap-southeast-2.amazonaws.com/";
else if (amzRegion.equals("ap-northeast-1"))
return "https://s3-ap-northeast-1.amazonaws.com/";
else if (amzRegion.equals("sa-east-1"))
return "https://s3-sa-east-1.amazonaws.com/";
else
return amzRegion;
}
public String getSimpleDBHost() {
if (amzRegion.equals("us-east") || amzRegion.equals("us-standard"))
return "https://sdb.amazonaws.com";
else if (amzRegion.equals("us-west-1"))
return "https://sdb.us-west-1.amazonaws.com";
else if (amzRegion.equals("us-west-2"))
return "https://sdb.us-west-2.amazonaws.com";
else if (amzRegion.equals("eu"))
return "https://sdb.eu-west-1.amazonaws.com";
else if (amzRegion.equals("ap-southeast-1"))
return "https://sdb.ap-southeast-1.amazonaws.com";
else if (amzRegion.equals("ap-southeast-2"))
return "https://sdb.ap-southeast-2.amazonaws.com";
else if (amzRegion.equals("ap-northeast-1"))
return "https://sdb.ap-northeast-1.amazonaws.com";
else if (amzRegion.equals("sa-east-1"))
return "https://sdb.sa-east-1.amazonaws.com";
else
return amzRegion;
}
public String getSQSHost() {
if (amzRegion.equalsIgnoreCase("us-east") || amzRegion.equalsIgnoreCase("us-standard"))
return "https://sqs.us-east-1.amazonaws.com";
else if (amzRegion.equalsIgnoreCase("us-west-1"))
return "https://sqs.us-west-1.amazonaws.com";
else if (amzRegion.equalsIgnoreCase("us-west-2"))
return "https://sqs.us-west-2.amazonaws.com";
else if (amzRegion.equalsIgnoreCase("eu"))
return "https://sqs.eu-west-1.amazonaws.com";
else if (amzRegion.equalsIgnoreCase("ap-southeast-1"))
return "https://sqs.ap-southeast-1.amazonaws.com";
else if (amzRegion.equalsIgnoreCase("ap-southeast-2"))
return "https://sqs.ap-southeast-2.amazonaws.com";
else if (amzRegion.equalsIgnoreCase("ap-northeast-1"))
return "https://sqs.ap-northeast-1.amazonaws.com";
else if (amzRegion.equalsIgnoreCase("sa-east-1"))
return "https://sqs.sa-east-1.amazonaws.com";
else
return amzRegion;
}
public StorageClass getAmazonStorageClass(String storage) {
if (storage == null)
return StorageClass.Standard;
else if (storage.equalsIgnoreCase("standard"))
return StorageClass.Standard;
else if (storage.toLowerCase().startsWith("reduced"))
return StorageClass.ReducedRedundancy;
else
return StorageClass.Standard;
}
/**
* private | public-read | public-read-write | authenticated-read | bucket-owner-read | bucket-owner-full-control | log-delivery-write
*
* @param acl
* @return
*/
public CannedAccessControlList getAmazonCannedAcl(String acl) {
if (acl.equalsIgnoreCase("private"))
return CannedAccessControlList.Private;
else if (acl.equalsIgnoreCase("public-read") || acl.equalsIgnoreCase("publicread"))
return CannedAccessControlList.PublicRead;
else if (acl.equalsIgnoreCase("public-read-write") || acl.equalsIgnoreCase("publicreadwrite"))
return CannedAccessControlList.PublicReadWrite;
else if (acl.equalsIgnoreCase("authenticated-read") || acl.equalsIgnoreCase("authenticatedread"))
return CannedAccessControlList.AuthenticatedRead;
else if (acl.equalsIgnoreCase("bucket-owner-read") || acl.equalsIgnoreCase("bucketownerread"))
return CannedAccessControlList.BucketOwnerRead;
else if (acl.equalsIgnoreCase("bucket-owner-full-control") || acl.equalsIgnoreCase("bucketownerfullcontrol"))
return CannedAccessControlList.BucketOwnerFullControl;
else if (acl.equalsIgnoreCase("log-delivery-write") || acl.equalsIgnoreCase("logdeliverywrite"))
return CannedAccessControlList.LogDeliveryWrite;
else
return CannedAccessControlList.Private;
}
}