Search in sources :

Example 51 with AmazonS3Client

use of com.amazonaws.services.s3.AmazonS3Client in project jackrabbit by apache.

the class Utils method openService.

/**
 * Create AmazonS3Client from properties.
 *
 * @param prop properties to configure @link {@link AmazonS3Client}
 * @return {@link AmazonS3Client}
 */
public static AmazonS3Client openService(final Properties prop) {
    String accessKey = prop.getProperty(S3Constants.ACCESS_KEY);
    String secretKey = prop.getProperty(S3Constants.SECRET_KEY);
    AmazonS3Client s3service = null;
    if (StringUtils.isNullOrEmpty(accessKey) || StringUtils.isNullOrEmpty(secretKey)) {
        LOG.info("Configuring Amazon Client from environment");
        s3service = new AmazonS3Client(getClientConfiguration(prop));
    } else {
        LOG.info("Configuring Amazon Client from property file.");
        AWSCredentials credentials = new BasicAWSCredentials(accessKey, secretKey);
        s3service = new AmazonS3Client(credentials, getClientConfiguration(prop));
    }
    String region = prop.getProperty(S3Constants.S3_REGION);
    String endpoint = null;
    String propEndPoint = prop.getProperty(S3Constants.S3_END_POINT);
    if ((propEndPoint != null) && !"".equals(propEndPoint)) {
        endpoint = propEndPoint;
    } else {
        if (StringUtils.isNullOrEmpty(region)) {
            com.amazonaws.regions.Region s3Region = Regions.getCurrentRegion();
            if (s3Region != null) {
                region = s3Region.getName();
            } else {
                throw new AmazonClientException("parameter [" + S3Constants.S3_REGION + "] not configured and cannot be derived from environment");
            }
        }
        if (DEFAULT_AWS_BUCKET_REGION.equals(region)) {
            endpoint = S3 + DOT + AWSDOTCOM;
        } else if (Region.EU_Ireland.toString().equals(region)) {
            endpoint = "s3-eu-west-1" + DOT + AWSDOTCOM;
        } else {
            endpoint = S3 + DASH + region + DOT + AWSDOTCOM;
        }
    }
    /*
         * setting endpoint to remove latency of redirection. If endpoint is
         * not set, invocation first goes us standard region, which
         * redirects it to correct location.
         */
    s3service.setEndpoint(endpoint);
    LOG.info("S3 service endpoint [{}] ", endpoint);
    s3service.setS3ClientOptions(getS3ClientOptions(prop));
    return s3service;
}
Also used : AmazonS3Client(com.amazonaws.services.s3.AmazonS3Client) AmazonClientException(com.amazonaws.AmazonClientException) BasicAWSCredentials(com.amazonaws.auth.BasicAWSCredentials) AWSCredentials(com.amazonaws.auth.AWSCredentials) BasicAWSCredentials(com.amazonaws.auth.BasicAWSCredentials)

Example 52 with AmazonS3Client

use of com.amazonaws.services.s3.AmazonS3Client in project XRTB by benmfaul.

the class Configuration method processDirectory.

public void processDirectory(AmazonS3Client s3, ObjectListing listing, String bucket) throws Exception {
    for (S3ObjectSummary objectSummary : listing.getObjectSummaries()) {
        long size = objectSummary.getSize();
        logger.info("*** Processing S3 {}, size: {}", objectSummary.getKey(), size);
        S3Object object = s3.getObject(new GetObjectRequest(bucket, objectSummary.getKey()));
        String bucketName = object.getBucketName();
        String keyName = object.getKey();
        GetObjectTaggingRequest request = new GetObjectTaggingRequest(bucketName, keyName);
        GetObjectTaggingResult result = s3.getObjectTagging(request);
        List<Tag> tags = result.getTagSet();
        String type = null;
        String name = null;
        if (tags.isEmpty()) {
            System.err.println("Error: " + keyName + " has no tags");
        } else {
            for (Tag tag : tags) {
                String key = tag.getKey();
                String value = tag.getValue();
                if (key.equals("type")) {
                    type = value;
                }
                if (key.equals("name")) {
                    name = value;
                }
            }
            if (name == null)
                throw new Exception("Error: " + keyName + " is missing a name tag");
            if (name.contains(" "))
                throw new Exception("Error: " + keyName + " has a name attribute with a space in it");
            if (type == null)
                throw new Exception("Error: " + keyName + " has no type tag");
            if (!name.startsWith("$"))
                name = "$" + name;
            readData(type, name, object, size);
        }
    }
}
Also used : GetObjectTaggingRequest(com.amazonaws.services.s3.model.GetObjectTaggingRequest) S3ObjectSummary(com.amazonaws.services.s3.model.S3ObjectSummary) S3Object(com.amazonaws.services.s3.model.S3Object) GeoTag(com.xrtb.geo.GeoTag) Tag(com.amazonaws.services.s3.model.Tag) GetObjectRequest(com.amazonaws.services.s3.model.GetObjectRequest) GetObjectTaggingResult(com.amazonaws.services.s3.model.GetObjectTaggingResult)

Example 53 with AmazonS3Client

use of com.amazonaws.services.s3.AmazonS3Client in project XRTB by benmfaul.

the class Configuration method initialize.

/**
 * Initialize the system from the JSON or Aerospike configuration file.
 *
 * @param path String - The file name containing the Java Bean Shell code.
 * @param shard Stromg. The shard name
 * @param port int. The port the web access listens on
 * @param sslPort  int. The port the SSL listens on.
 * @throws Exception
 *             on file errors.
 */
public void initialize(String path, String shard, int port, int sslPort) throws Exception {
    this.fileName = path;
    /**
     ****************************
     * System Name
     ****************************
     */
    this.shard = shard;
    this.port = port;
    this.sslPort = sslPort;
    java.net.InetAddress localMachine = null;
    String useName = null;
    try {
        localMachine = java.net.InetAddress.getLocalHost();
        ipAddress = localMachine.getHostAddress();
        useName = localMachine.getHostName();
    } catch (Exception error) {
        useName = getIpAddress();
    }
    if (shard == null || shard.length() == 0)
        instanceName = useName + ":" + port;
    else
        instanceName = shard + ":" + useName + ":" + port;
    /**
     * Set up tem p files
     */
    // create the temp
    Files.createDirectories(Paths.get("www/temp"));
    // directory in www so
    // preview campaign will
    // work
    /**
     *******************************************
     * USE ZOOKEEPER, AEROSPIKE OR FILE CONFIG
     ********************************************
     */
    String str = null;
    if (path.startsWith("zookeeper")) {
        String[] parts = path.split(":");
        logger.info("Zookeeper: {}", "" + parts);
        zk = new ZkConnect(parts[1]);
        zk.join(parts[2], "bidders", instanceName);
        str = zk.readConfig(parts[2] + "/bidders");
    } else if (path.startsWith("aerospike")) {
        String[] parts = path.split(":");
        logger.info("Zookeeper: {}", "" + parts);
        ;
        String aerospike = parts[1];
        String configKey = parts[2];
        AerospikeHandler spike = AerospikeHandler.getInstance(aerospike, 3000, 300);
        redisson = new RedissonClient(spike);
        Database.getInstance(redisson);
        str = redisson.get(configKey);
        if (str == null) {
            throw new Exception("Aerospike configuration at " + path + " not available.");
        }
        logger.info("Zookeeper: {}", str);
    } else {
        byte[] encoded = Files.readAllBytes(Paths.get(path));
        str = Charset.defaultCharset().decode(ByteBuffer.wrap(encoded)).toString();
        str = Configuration.substitute(str);
        System.out.println(str);
    }
    Map<?, ?> m = DbTools.mapper.readValue(str, Map.class);
    /**
     ****************************************************************************
     */
    seats = new HashMap<String, String>();
    if (m.get("lists") != null) {
        filesList = (List) m.get("lists");
        initializeLookingGlass(filesList);
    }
    if (m.get("s3") != null) {
        Map<String, String> ms3 = (Map) m.get("s3");
        String accessKey = ms3.get("access_key_id");
        String secretAccessKey = ms3.get("secret_access_key");
        String region = ms3.get("region");
        s3_bucket = ms3.get("bucket");
        s3 = new AmazonS3Client(new BasicAWSCredentials(accessKey, secretAccessKey));
        ObjectListing listing = s3.listObjects(new ListObjectsRequest().withBucketName(s3_bucket));
        try {
            processDirectory(s3, listing, s3_bucket);
        } catch (Exception error) {
            System.err.println("ERROR IN AWS LISTING: " + error.toString());
        }
    }
    if (m.get("ssl") != null) {
        Map x = (Map) m.get("ssl");
        ssl = new SSL();
        ssl.setKeyManagerPassword = (String) x.get("setKeyManagerPassword");
        ssl.setKeyStorePassword = (String) x.get("setKeyStorePassword");
        ssl.setKeyStorePath = (String) x.get("setKeyStorePath");
    }
    /**
     * Create the seats id map, and create the bin and win handler classes
     * for each exchange
     */
    seatsList = (List<Map>) m.get("seats");
    for (int i = 0; i < seatsList.size(); i++) {
        Map x = seatsList.get(i);
        String seatId = (String) x.get("id");
        String className = (String) x.get("bid");
        int k = className.indexOf("=");
        String[] parts = new String[2];
        String uri = className.substring(0, k);
        className = className.substring(k + 1);
        String[] options = null;
        /**
         * set up any options on the class string
         */
        if (className.contains("&")) {
            parts = className.split("&");
            className = parts[0].trim();
            options = parts[1].split(",");
            for (int ind = 0; ind < options.length; ind++) {
                options[ind] = options[ind].trim();
            }
        }
        String[] tags = uri.split("/");
        String exchange = tags[tags.length - 1];
        String name = (String) x.get("name");
        if (name == null)
            name = exchange;
        String id = (String) x.get("id");
        seats.put(name, id);
        try {
            Class<?> c = Class.forName(className);
            BidRequest br = (BidRequest) c.newInstance();
            if (br == null) {
                throw new Exception("Could not make new instance of: " + className);
            }
            Map extension = (Map) x.get("extension");
            if (x != null)
                br.handleConfigExtensions(extension);
            /**
             * Handle generic-ized exchanges
             */
            if (className.contains("Generic")) {
                br.setExchange(exchange);
                br.usesEncodedAdm = true;
            }
            RTBServer.exchanges.put(uri, br);
            if (parts[0] != null) {
                for (int ind = 1; ind < parts.length; ind++) {
                    String option = parts[ind];
                    String[] tuples = option.split("=");
                    switch(tuples[0]) {
                        case "usesEncodedAdm":
                            br.usesEncodedAdm = true;
                            break;
                        case "!usesEncodedAdm":
                            br.usesEncodedAdm = false;
                            break;
                        case "rlog":
                            Double rlog = Double.parseDouble(tuples[1]);
                            ExchangeLogLevel.getInstance().setExchangeLogLevel(name, rlog.intValue());
                            break;
                        case "useStrings":
                            break;
                        case "!useStrings":
                            break;
                        case "!usesPiggyBackWins":
                            break;
                        case "usesPiggyBackWins":
                            BidRequest.setUsesPiggyBackWins(name);
                            break;
                        default:
                            System.err.println("Unknown request: " + tuples[0] + " in definition of " + className);
                    }
                }
            }
            /**
             * Appnexus requires additional support for ready, pixel and
             * click
             */
            if (className.contains("Appnexus")) {
                RTBServer.exchanges.put(uri + "/ready", new Appnexus(Appnexus.READY));
                RTBServer.exchanges.put(uri + "/pixel", new Appnexus(Appnexus.PIXEL));
                RTBServer.exchanges.put(uri + "/click", new Appnexus(Appnexus.CLICK));
                RTBServer.exchanges.put(uri + "/delivered", new Appnexus(Appnexus.DELIVERED));
                Appnexus.seatId = seatId;
            }
        } catch (Exception error) {
            System.err.println("Error configuring exchange: " + name + ", error = ");
            throw error;
        }
    }
    /**
     * Create forensiq
     */
    Map fraud = (Map) m.get("fraud");
    if (fraud != null) {
        if (m.get("forensiq") != null) {
            logger.info("*** Fraud detection is set to Forensiq");
            Map f = (Map) m.get("forensiq");
            String ck = (String) f.get("ck");
            Integer x = (Integer) f.get("threshhold");
            if (!(x == 0 || ck == null || ck.equals("none"))) {
                ForensiqClient fx = ForensiqClient.build(ck);
                if (fraud.get("endpoint") != null) {
                    fx.endpoint = (String) fraud.get("endpoint");
                }
                if (fraud.get("bidOnError") != null) {
                    fx.bidOnError = (Boolean) fraud.get("bidOnError");
                }
                if (f.get("connections") != null)
                    ForensiqClient.getInstance().connections = (int) (Integer) fraud.get("connections");
                forensiq = fx;
            }
        } else {
            logger.info("*** Fraud detection is set to MMDB");
            String db = (String) fraud.get("db");
            if (db == null) {
                throw new Exception("No fraud db specified for MMDB");
            }
            MMDBClient fy;
            try {
                fy = MMDBClient.build(db);
            } catch (Error error) {
                throw error;
            }
            if (fraud.get("bidOnError") != null) {
                fy.bidOnError = (Boolean) fraud.get("bidOnError");
            }
            if (fraud.get("watchlist") != null) {
                fy.setWatchlist((List<String>) fraud.get("watchlist"));
            }
            forensiq = fy;
        }
    } else {
        logger.info("*** NO Fraud detection");
    }
    /**
     * Deal with the app object
     */
    m = (Map) m.get("app");
    password = (String) m.get("password");
    if (m.get("threads") != null) {
        RTBServer.threads = (Integer) m.get("threads");
    }
    if (m.get("multibid") != null) {
        multibid = (Boolean) m.get("multibid");
    }
    if (m.get("adminPort") != null) {
        adminPort = (Integer) m.get("adminPort");
    }
    if (m.get("adminSSL") != null) {
        adminSSL = (Boolean) m.get("adminSSL");
    }
    String strategy = (String) m.get("strategy");
    if (strategy != null && strategy.equals("heuristic"))
        RTBServer.strategy = STRATEGY_HEURISTIC;
    else
        RTBServer.strategy = STRATEGY_MAX_CONNECTIONS;
    verbosity = (Map) m.get("verbosity");
    if (verbosity != null) {
        logLevel = (Integer) verbosity.get("level");
        printNoBidReason = (Boolean) verbosity.get("nobid-reason");
    }
    template = (Map) m.get("template");
    if (template == null) {
        throw new Exception("No template defined");
    }
    encodeTemplates();
    encodeTemplateStubs();
    geotags = (Map) m.get("geotags");
    if (geotags != null) {
        String states = (String) geotags.get("states");
        String codes = (String) geotags.get("zipcodes");
        geoTagger.initTags(states, codes);
    }
    Boolean bValue = false;
    bValue = (Boolean) m.get("stopped");
    if (bValue != null && bValue == true) {
        RTBServer.stopped = true;
        pauseOnStart = true;
    }
    Map redis = (Map) m.get("redis");
    if (redis != null) {
        Integer rsize = (Integer) redis.get("pool");
        if (rsize == null)
            rsize = 64;
        String host = (String) redis.get("host");
        Integer rport = (Integer) redis.get("port");
        if (rport == null)
            rport = 6379;
        // JedisPoolConfig poolConfig = new JedisPoolConfig();;
        // configJedis.setMaxTotal(rsize);
        // configJedis.setMaxWaitMillis(10);
        // poolConfig.setMaxIdle(4000);
        // Tests whether connections are dead during idle periods
        // poolConfig.setTestWhileIdle(true);
        // poolConfig.setMaxTotal(4000);
        // poolConfig.setMaxWaitMillis(30);
        // jedisPool = new JedisPool(poolConfig,host,rport);
        MyJedisPool.host = host;
        MyJedisPool.port = rport;
        jedisPool = new MyJedisPool(1000, 1000, 5);
        logger.info("*** JEDISPOOL = {}/{}/{} {}", jedisPool, host, rport, rsize);
    }
    Map zeromq = (Map) m.get("zeromq");
    if (zeromq == null) {
        throw new Exception("Zeromq is mot configured!");
    }
    String value = null;
    Double dValue = 0.0;
    bValue = false;
    Map r = (Map) m.get("aerospike");
    if (r != null) {
        if ((value = (String) r.get("host")) != null)
            cacheHost = value;
        if (r.get("port") != null)
            cachePort = (Integer) r.get("port");
        if (r.get("maxconns") != null)
            maxconns = (Integer) r.get("maxconns");
        AerospikeHandler.getInstance(cacheHost, cachePort, maxconns);
        redisson = new RedissonClient(AerospikeHandler.getInstance());
        Database.getInstance(redisson);
        logger.info("*** Aerospike connection set to: {}. port: {}. connections: {}, handlers: {}", cacheHost, cachePort, maxconns, AerospikeHandler.getInstance().getCount());
        String key = (String) m.get("deadmanswitch");
        if (key != null) {
            deadmanSwitch = new DeadmanSwitch(redisson, key);
        }
    } else {
        redisson = new RedissonClient();
        Database db = Database.getInstance(redisson);
        readDatabaseIntoCache("database.json");
        readBlackListIntoCache("blacklist.json");
    }
    /**
     * Zeromq
     */
    if ((value = (String) zeromq.get("bidchannel")) != null)
        BIDS_CHANNEL = value;
    if ((value = (String) zeromq.get("nobidchannel")) != null)
        NOBIDS_CHANNEL = value;
    if ((value = (String) zeromq.get("winchannel")) != null)
        WINS_CHANNEL = value;
    if ((value = (String) zeromq.get("requests")) != null)
        REQUEST_CHANNEL = value;
    if ((value = (String) zeromq.get("unilogger")) != null)
        UNILOGGER_CHANNEL = value;
    if ((value = (String) zeromq.get("clicks")) != null)
        CLICKS_CHANNEL = value;
    if ((value = (String) zeromq.get("fraud")) != null)
        FORENSIQ_CHANNEL = value;
    if ((value = (String) zeromq.get("responses")) != null)
        RESPONSES = value;
    if ((value = (String) zeromq.get("status")) != null)
        PERF_CHANNEL = value;
    if ((value = (String) zeromq.get("reasons")) != null)
        REASONS_CHANNEL = value;
    Map xx = (Map) zeromq.get("subscribers");
    List<String> list = (List) xx.get("hosts");
    commandsPort = (String) xx.get("commands");
    for (String host : list) {
        String address = "tcp://" + host + ":" + commandsPort + "&commands";
        commandAddresses.add(address);
    }
    if (zeromq.get("requeststrategy") != null) {
        Object obj = zeromq.get("requeststrategy");
        if (obj instanceof String) {
            strategy = (String) zeromq.get("requeststrategy");
            if (strategy.equalsIgnoreCase("all") || strategy.equalsIgnoreCase("requests"))
                requstLogStrategy = REQUEST_STRATEGY_ALL;
            if (strategy.equalsIgnoreCase("bids"))
                requstLogStrategy = REQUEST_STRATEGY_BIDS;
            if (strategy.equalsIgnoreCase("WINS"))
                requstLogStrategy = REQUEST_STRATEGY_WINS;
        } else {
            if (obj instanceof Integer) {
                int level = (Integer) obj;
                ExchangeLogLevel.getInstance().setStdLevel(level);
            } else if (obj instanceof Double) {
                Double perc = (Double) obj;
                ExchangeLogLevel.getInstance().setStdLevel(perc.intValue());
            }
        }
    }
    /**
     *****************************************************************
     */
    campaignsList.clear();
    pixelTrackingUrl = (String) m.get("pixel-tracking-url");
    winUrl = (String) m.get("winurl");
    redirectUrl = (String) m.get("redirect-url");
    if (m.get("ttl") != null) {
        ttl = (Integer) m.get("ttl");
    }
    initialLoadlist = (List<Map>) m.get("campaigns");
    for (Map<String, String> camp : initialLoadlist) {
        if (camp.get("id") != null) {
            addCampaign(camp.get("name"), camp.get("id"));
        } else {
            logger.error("Configuration, *** ERRORS DETECTED IN INITIAL LOAD OF CAMPAIGNS *** ");
        }
    }
    if (cacheHost == null)
        logger.warn("*** NO AEROSPIKE CONFIGURED, USING CACH2K INSTEAD *** ");
    if (winUrl.contains("localhost")) {
        logger.warn("Configuration", "*** WIN URL IS SET TO LOCALHOST, NO REMOTE ACCESS WILL WORK FOR WINS ***");
    }
}
Also used : MMDBClient(com.xrtb.fraud.MMDBClient) ObjectListing(com.amazonaws.services.s3.model.ObjectListing) BidRequest(com.xrtb.pojo.BidRequest) ListObjectsRequest(com.amazonaws.services.s3.model.ListObjectsRequest) DeadmanSwitch(com.xrtb.bidder.DeadmanSwitch) Database(com.xrtb.db.Database) List(java.util.List) ArrayList(java.util.ArrayList) Appnexus(com.xrtb.exchanges.appnexus.Appnexus) BasicAWSCredentials(com.amazonaws.auth.BasicAWSCredentials) AmazonS3Client(com.amazonaws.services.s3.AmazonS3Client) RedissonClient(com.aerospike.redisson.RedissonClient) AerospikeHandler(com.aerospike.redisson.AerospikeHandler) S3Object(com.amazonaws.services.s3.model.S3Object) DataBaseObject(com.xrtb.db.DataBaseObject) Map(java.util.Map) NavMap(com.xrtb.blocks.NavMap) HashMap(java.util.HashMap) ForensiqClient(com.xrtb.fraud.ForensiqClient)

Example 54 with AmazonS3Client

use of com.amazonaws.services.s3.AmazonS3Client in project YCSB by brianfrankcooper.

the class S3Client method init.

/**
 * Initialize any state for the storage.
 * Called once per S3 instance; If the client is not null it is re-used.
 */
@Override
public void init() throws DBException {
    final int count = INIT_COUNT.incrementAndGet();
    synchronized (S3Client.class) {
        Properties propsCL = getProperties();
        int recordcount = Integer.parseInt(propsCL.getProperty("recordcount"));
        int operationcount = Integer.parseInt(propsCL.getProperty("operationcount"));
        int numberOfOperations = 0;
        if (recordcount > 0) {
            if (recordcount > operationcount) {
                numberOfOperations = recordcount;
            } else {
                numberOfOperations = operationcount;
            }
        } else {
            numberOfOperations = operationcount;
        }
        if (count <= numberOfOperations) {
            String accessKeyId = null;
            String secretKey = null;
            String endPoint = null;
            String region = null;
            String maxErrorRetry = null;
            String maxConnections = null;
            String protocol = null;
            BasicAWSCredentials s3Credentials;
            ClientConfiguration clientConfig;
            if (s3Client != null) {
                System.out.println("Reusing the same client");
                return;
            }
            try {
                InputStream propFile = S3Client.class.getClassLoader().getResourceAsStream("s3.properties");
                Properties props = new Properties(System.getProperties());
                props.load(propFile);
                accessKeyId = props.getProperty("s3.accessKeyId");
                if (accessKeyId == null) {
                    accessKeyId = propsCL.getProperty("s3.accessKeyId");
                }
                System.out.println(accessKeyId);
                secretKey = props.getProperty("s3.secretKey");
                if (secretKey == null) {
                    secretKey = propsCL.getProperty("s3.secretKey");
                }
                System.out.println(secretKey);
                endPoint = props.getProperty("s3.endPoint");
                if (endPoint == null) {
                    endPoint = propsCL.getProperty("s3.endPoint", "s3.amazonaws.com");
                }
                System.out.println(endPoint);
                region = props.getProperty("s3.region");
                if (region == null) {
                    region = propsCL.getProperty("s3.region", "us-east-1");
                }
                System.out.println(region);
                maxErrorRetry = props.getProperty("s3.maxErrorRetry");
                if (maxErrorRetry == null) {
                    maxErrorRetry = propsCL.getProperty("s3.maxErrorRetry", "15");
                }
                maxConnections = props.getProperty("s3.maxConnections");
                if (maxConnections == null) {
                    maxConnections = propsCL.getProperty("s3.maxConnections");
                }
                protocol = props.getProperty("s3.protocol");
                if (protocol == null) {
                    protocol = propsCL.getProperty("s3.protocol", "HTTPS");
                }
                sse = props.getProperty("s3.sse");
                if (sse == null) {
                    sse = propsCL.getProperty("s3.sse", "false");
                }
                String ssec = props.getProperty("s3.ssec");
                if (ssec == null) {
                    ssec = propsCL.getProperty("s3.ssec", null);
                } else {
                    ssecKey = new SSECustomerKey(ssec);
                }
            } catch (Exception e) {
                System.err.println("The file properties doesn't exist " + e.toString());
                e.printStackTrace();
            }
            try {
                System.out.println("Inizializing the S3 connection");
                s3Credentials = new BasicAWSCredentials(accessKeyId, secretKey);
                clientConfig = new ClientConfiguration();
                clientConfig.setMaxErrorRetry(Integer.parseInt(maxErrorRetry));
                if (protocol.equals("HTTP")) {
                    clientConfig.setProtocol(Protocol.HTTP);
                } else {
                    clientConfig.setProtocol(Protocol.HTTPS);
                }
                if (maxConnections != null) {
                    clientConfig.setMaxConnections(Integer.parseInt(maxConnections));
                }
                s3Client = new AmazonS3Client(s3Credentials, clientConfig);
                s3Client.setRegion(Region.getRegion(Regions.fromName(region)));
                s3Client.setEndpoint(endPoint);
                System.out.println("Connection successfully initialized");
            } catch (Exception e) {
                System.err.println("Could not connect to S3 storage: " + e.toString());
                e.printStackTrace();
                throw new DBException(e);
            }
        } else {
            System.err.println("The number of threads must be less or equal than the operations");
            throw new DBException(new Error("The number of threads must be less or equal than the operations"));
        }
    }
}
Also used : DBException(site.ycsb.DBException) SSECustomerKey(com.amazonaws.services.s3.model.SSECustomerKey) AmazonS3Client(com.amazonaws.services.s3.AmazonS3Client) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) AmazonS3Client(com.amazonaws.services.s3.AmazonS3Client) Properties(java.util.Properties) ClientConfiguration(com.amazonaws.ClientConfiguration) DBException(site.ycsb.DBException)

Example 55 with AmazonS3Client

use of com.amazonaws.services.s3.AmazonS3Client in project exhibitor by soabase.

the class S3ClientImpl method initiateMultipartUpload.

@Override
public InitiateMultipartUploadResult initiateMultipartUpload(InitiateMultipartUploadRequest request) throws Exception {
    RefCountedClient holder = client.get();
    AmazonS3Client amazonS3Client = holder.useClient();
    try {
        return amazonS3Client.initiateMultipartUpload(request);
    } finally {
        holder.release();
    }
}
Also used : AmazonS3Client(com.amazonaws.services.s3.AmazonS3Client)

Aggregations

AmazonS3Client (com.amazonaws.services.s3.AmazonS3Client)109 Test (org.junit.Test)23 BasicAWSCredentials (com.amazonaws.auth.BasicAWSCredentials)20 AmazonClientException (com.amazonaws.AmazonClientException)18 ClientConfiguration (com.amazonaws.ClientConfiguration)18 ArrayList (java.util.ArrayList)14 AWSCredentialsProvider (com.amazonaws.auth.AWSCredentialsProvider)13 HashMap (java.util.HashMap)13 AmazonS3 (com.amazonaws.services.s3.AmazonS3)12 File (java.io.File)12 InvocationOnMock (org.mockito.invocation.InvocationOnMock)12 PutObjectResult (com.amazonaws.services.s3.model.PutObjectResult)11 UploadPartRequest (com.amazonaws.services.s3.model.UploadPartRequest)11 AWSCredentials (com.amazonaws.auth.AWSCredentials)10 AmazonS3Exception (com.amazonaws.services.s3.model.AmazonS3Exception)10 ObjectMetadata (com.amazonaws.services.s3.model.ObjectMetadata)10 S3Object (com.amazonaws.services.s3.model.S3Object)9 InternalEvent (com.nextdoor.bender.InternalEvent)9 TestContext (com.nextdoor.bender.aws.TestContext)9 IOException (java.io.IOException)9