Example usage for com.amazonaws.services.s3.model S3Object getObjectContent

List of usage examples for com.amazonaws.services.s3.model S3Object getObjectContent

Introduction

In this page you can find the example usage for com.amazonaws.services.s3.model S3Object getObjectContent.

Prototype

public S3ObjectInputStream getObjectContent() 

Source Link

Document

Gets the input stream containing the contents of this object.

Usage

From source file:org.rdswitchboard.importers.browser.s3.App.java

License:Open Source License

public static void main(String[] args) {
    try {/*from   w ww  .j a va2  s . co  m*/
        if (args.length == 0 || StringUtils.isNullOrEmpty(args[0]))
            throw new Exception("Please provide properties file");

        String propertiesFile = args[0];
        Properties properties = new Properties();
        try (InputStream in = new FileInputStream(propertiesFile)) {
            properties.load(in);
        }

        String source = properties.getProperty("data.source.id");

        if (StringUtils.isNullOrEmpty(source))
            throw new IllegalArgumentException("Source can not be empty");

        System.out.println("Source: " + source);

        String baseUrl = properties.getProperty("base.url");

        if (StringUtils.isNullOrEmpty(baseUrl))
            throw new IllegalArgumentException("Base URL can not be empty");

        System.out.println("Base URL: " + baseUrl);

        String sessionId = properties.getProperty("session.id");

        if (StringUtils.isNullOrEmpty(sessionId))
            throw new IllegalArgumentException("Session Id can not be empty");

        System.out.println("Session Id: " + sessionId);

        String accessKey = properties.getProperty("aws.access.key");
        String secretKey = properties.getProperty("aws.secret.key");

        String bucket = properties.getProperty("s3.bucket");

        if (StringUtils.isNullOrEmpty(bucket))
            throw new IllegalArgumentException("AWS S3 Bucket can not be empty");

        System.out.println("S3 Bucket: " + bucket);

        String prefix = properties.getProperty("s3.prefix");

        if (StringUtils.isNullOrEmpty(prefix))
            throw new IllegalArgumentException("AWS S3 Prefix can not be empty");

        System.out.println("S3 Prefix: " + prefix);

        String crosswalk = properties.getProperty("crosswalk");
        Templates template = null;

        if (!StringUtils.isNullOrEmpty(crosswalk)) {
            System.out.println("Crosswalk: " + crosswalk);

            template = TransformerFactory.newInstance()
                    .newTemplates(new StreamSource(new FileInputStream(crosswalk)));
        }

        ObjectMapper mapper = new ObjectMapper();

        Client client = Client.create();
        Cookie cookie = new Cookie("PHPSESSID", properties.getProperty("session"));

        AmazonS3 s3client;

        if (!StringUtils.isNullOrEmpty(accessKey) && !StringUtils.isNullOrEmpty(secretKey)) {
            System.out.println(
                    "Connecting to AWS via Access and Secret Keys. This is not safe practice, consider to use IAM Role instead.");

            AWSCredentials awsCredentials = new BasicAWSCredentials(accessKey, secretKey);
            s3client = new AmazonS3Client(awsCredentials);
        } else {
            System.out.println("Connecting to AWS via Instance Profile Credentials");

            s3client = new AmazonS3Client(new InstanceProfileCredentialsProvider());
        }

        //String file = "rda/rif/class:collection/54800.xml";

        ListObjectsRequest listObjectsRequest;
        ObjectListing objectListing;

        String file = prefix + "/latest.txt";
        S3Object object = s3client.getObject(new GetObjectRequest(bucket, file));

        String latest;
        try (InputStream txt = object.getObjectContent()) {
            latest = prefix + "/" + IOUtils.toString(txt, StandardCharsets.UTF_8).trim() + "/";
        }

        System.out.println("S3 Repository: " + latest);

        listObjectsRequest = new ListObjectsRequest().withBucketName(bucket).withPrefix(latest);
        do {
            objectListing = s3client.listObjects(listObjectsRequest);
            for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) {

                file = objectSummary.getKey();

                System.out.println("Processing file: " + file);

                object = s3client.getObject(new GetObjectRequest(bucket, file));
                String xml = null;

                if (null != template) {
                    Source reader = new StreamSource(object.getObjectContent());
                    StringWriter writer = new StringWriter();

                    Transformer transformer = template.newTransformer();
                    transformer.transform(reader, new StreamResult(writer));

                    xml = writer.toString();
                } else {
                    InputStream is = object.getObjectContent();

                    xml = IOUtils.toString(is, ENCODING);
                }

                URL url = new URL(baseUrl + "/registry/import/import_s3/");

                StringBuilder sb = new StringBuilder();
                addParam(sb, "id", source);
                addParam(sb, "xml", xml);

                //System.out.println(sb.toString());

                WebResource webResource = client.resource(url.toString());
                ClientResponse response = webResource
                        .header("User-Agent",
                                "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0")
                        .accept(MediaType.APPLICATION_JSON, "*/*").acceptLanguage("en-US", "en")
                        .type(MediaType.APPLICATION_FORM_URLENCODED).cookie(cookie)
                        .post(ClientResponse.class, sb.toString());

                if (response.getStatus() != 200) {
                    throw new RuntimeException("Failed : HTTP error code : " + response.getStatus());
                }

                String output = response.getEntity(String.class);

                Result result = mapper.readValue(output, Result.class);

                if (!result.getStatus().equals("OK")) {
                    System.err.println(result.getMessage());

                    break;
                } else
                    System.out.println(result.getMessage());
            }
            listObjectsRequest.setMarker(objectListing.getNextMarker());
        } while (objectListing.isTruncated());

    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:org.rdswitchboard.tests.crosswalk.App.java

License:Open Source License

public static void main(String[] args) {
    try {/*from  ww w .j a  v a2 s. com*/
        String propertiesFile = PROPERTIES_FILE;

        if (args.length != 0 && !StringUtils.isNullOrEmpty(args[0]))
            propertiesFile = args[0];

        Properties properties = new Properties();
        try (InputStream in = new FileInputStream(propertiesFile)) {
            properties.load(in);
        }

        String accessKey = properties.getProperty("aws.access.key");
        String secretKey = properties.getProperty("aws.secret.key");

        String bucket = properties.getProperty("s3.bucket");

        if (StringUtils.isNullOrEmpty(bucket))
            throw new IllegalArgumentException("AWS S3 Bucket can not be empty");

        System.out.println("S3 Bucket: " + bucket);

        String key = properties.getProperty("s3.key");

        if (StringUtils.isNullOrEmpty(key))
            throw new IllegalArgumentException("AWS S3 Key can not be empty");

        System.out.println("S3 Key: " + key);

        String crosswalk = properties.getProperty("crosswalk");
        if (StringUtils.isNullOrEmpty(crosswalk))
            throw new IllegalArgumentException("Crosswalk can not be empty");

        System.out.println("Crosswalk: " + crosswalk);

        String outFileName = properties.getProperty("out", OUT_FILE_NAME);
        System.out.println("Out: " + outFileName);

        AmazonS3 s3client;
        if (!StringUtils.isNullOrEmpty(accessKey) && !StringUtils.isNullOrEmpty(secretKey)) {
            System.out.println(
                    "Connecting to AWS via Access and Secret Keys. This is not safe practice, consider to use IAM Role instead.");

            AWSCredentials awsCredentials = new BasicAWSCredentials(accessKey, secretKey);
            s3client = new AmazonS3Client(awsCredentials);
        } else {
            System.out.println("Connecting to AWS via Instance Profile Credentials");

            s3client = new AmazonS3Client(new InstanceProfileCredentialsProvider());
        }

        S3Object object = s3client.getObject(new GetObjectRequest(bucket, key));

        Templates template = TransformerFactory.newInstance()
                .newTemplates(new StreamSource(new FileInputStream(crosswalk)));
        StreamSource reader = new StreamSource(object.getObjectContent());
        StreamResult result = (StringUtils.isNullOrEmpty(outFileName) || outFileName.equals("stdout"))
                ? new StreamResult(System.out)
                : new StreamResult(new FileOutputStream(outFileName));

        Transformer transformer = template.newTransformer();
        transformer.transform(reader, result);

        /*
             DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
          TransformerFactory tFactory = TransformerFactory.newInstance();
          XPath xPath = XPathFactory.newInstance().newXPath();
                  
          DocumentBuilder builder = dFactory.newDocumentBuilder();
        Document document = builder.parse(object.getObjectContent());
        Transformer transformer1 = tFactory.newTemplates(
         new StreamSource(new FileInputStream(crosswalk))).newTransformer(); 
        Transformer transformer2 = tFactory.newTransformer();
                
        NodeList metadata = (NodeList)xPath.evaluate("/OAI-PMH/ListRecords/record/metadata",
              document.getDocumentElement(), XPathConstants.NODESET);
                
        for (int i = 0; i < metadata.getLength(); ++i) {
           System.out.println("Converting node: " + i);
                   
            Element e = (Element) metadata.item(i);
            Node mets = e.getElementsByTagName("mets").item(0);
            Node rifcs = document.createElement("registryObjects");
                    
           DOMSource xmlSource = new DOMSource(mets);
            DOMResult xmlResult = new DOMResult(rifcs);
                    
            transformer1.transform(xmlSource, xmlResult);
                
            e.removeChild(mets);
            e.appendChild(xmlResult.getNode());
                    
        //    e.replaceChild(rifcs, xmlResult.getNode());             
        }
                  
        StreamResult result = (StringUtils.isNullOrEmpty(outFileName) || outFileName.equals("stdout")) 
              ? new StreamResult(System.out)
              : new StreamResult(new FileOutputStream(outFileName));
                  
                
        transformer2.transform(new DOMSource(document), result);
                
                 
         */

    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:org.rdswitchboard.utils.s3.find.App.java

License:Open Source License

public static void main(String[] args) {
    try {//  w w  w  .ja va  2s  . com
        if (args.length != 2)
            throw new IllegalArgumentException("Bucket name and search string can not be empty");

        String buckey = args[0];
        String search = args[1];
        String prefix = null;
        int pos = buckey.indexOf('/');
        if (pos > 0) {
            prefix = buckey.substring(pos + 1);
            buckey = buckey.substring(0, pos);
        }

        AmazonS3 s3client = new AmazonS3Client(new InstanceProfileCredentialsProvider());

        //         AmazonS3 s3client = new AmazonS3Client(new ProfileCredentialsProvider());        

        ListObjectsRequest listObjectsRequest = new ListObjectsRequest().withBucketName(buckey);

        if (!StringUtils.isNullOrEmpty(prefix))
            listObjectsRequest.setPrefix(prefix);

        ObjectListing objectListing;

        do {
            objectListing = s3client.listObjects(listObjectsRequest);
            for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) {
                String key = objectSummary.getKey();
                System.out.println(" - " + key);

                S3Object object = s3client.getObject(new GetObjectRequest(buckey, key));
                String str = IOUtils.toString(object.getObjectContent());
                if (str.contains(search)) {
                    System.out.println("Found!");

                    FileUtils.writeStringToFile(new File("s3/" + key), str);
                }
            }
            listObjectsRequest.setMarker(objectListing.getNextMarker());
        } while (objectListing.isTruncated());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:org.researchgraph.crossref.CrossRef.java

private String getCahcedFile(String file) throws IOException {
    if (null != cache) {
        File f = new File(cache, file);
        if (f.exists() && !f.isDirectory()) {
            return FileUtils.readFileToString(f);
        }// ww  w . j  a  v a 2s  .  co m

    } else if (null != s3Client) {
        S3Object o = s3Client.getObject(new GetObjectRequest(s3Bucket, getS3Key(file)));
        if (null != o) {
            try (InputStream is = o.getObjectContent()) {
                return IOUtils.toString(is);
            }
        }
    }

    return null;
}

From source file:org.sifarish.util.Utility.java

License:Apache License

public static void setConfiguration(Configuration conf) throws Exception {
    String confFilePath = conf.get("conf.path");
    if (null != confFilePath) {
        InputStream is = null;/*from w  w  w . j a  v  a  2 s  . com*/
        if (confFilePath.startsWith(S3_PREFIX)) {
            Matcher matcher = s3pattern.matcher(confFilePath);
            matcher.matches();
            String bucket = matcher.group(1);
            String key = matcher.group(2);
            S3Object object = s3.getObject(new GetObjectRequest(bucket, key));
            is = object.getObjectContent();
        } else {
            is = new FileInputStream(confFilePath);
        }
        Properties configProps = new Properties();
        configProps.load(is);

        for (Object key : configProps.keySet()) {
            String keySt = key.toString();
            conf.set(keySt, configProps.getProperty(keySt));
        }
    }
}

From source file:org.springframework.integration.aws.s3.core.AmazonS3OperationsImpl.java

License:Apache License

public AmazonS3Object getObject(String bucketName, String folder, String objectName) {
    if (logger.isDebugEnabled())
        logger.debug("Getting from bucket " + bucketName + ", from folder " + folder + " the  object name "
                + objectName);//from   w  w  w  . j a v  a 2 s  .  c  om
    GetObjectRequest request = new GetObjectRequest(bucketName, objectName);
    S3Object s3Object = client.getObject(request);
    AmazonS3Object object = new AmazonS3Object(s3Object.getObjectMetadata().getUserMetadata(),
            s3Object.getObjectMetadata().getRawMetadata(), s3Object.getObjectContent(), null);
    return object;
}

From source file:org.springframework.integration.aws.s3.core.DefaultAmazonS3Operations.java

License:Apache License

/**
 * Gets the object from the given bucket with the given key using the AWS SDK implementation
 *
 * @param bucketName/*from   www  .  j  a v a 2  s .co  m*/
 * @param key
 * @return The Amazon S3 Object representing the Object in S3, may be null.
 */
@Override
protected AmazonS3Object doGetObject(String bucketName, String key) {
    GetObjectRequest request = new GetObjectRequest(bucketName, key);
    S3Object s3Object;
    try {
        s3Object = client.getObject(request);
    } catch (AmazonS3Exception e) {
        if ("NoSuchKey".equals(e.getErrorCode())) {
            //If the key is not found, return null rather than throwing the exception
            return null;
        } else {
            //throw the exception to caller in all other cases
            throw e;
        }
    }
    return new AmazonS3Object(s3Object.getObjectMetadata().getUserMetadata(),
            s3Object.getObjectMetadata().getRawMetadata(), s3Object.getObjectContent(), null);
}

From source file:org.springframework.integration.aws.support.S3Session.java

License:Apache License

@Override
public void read(String source, OutputStream outputStream) throws IOException {
    String[] bucketKey = splitPathToBucketAndKey(source);
    S3Object s3Object = this.amazonS3.getObject(bucketKey[0], bucketKey[1]);
    S3ObjectInputStream objectContent = s3Object.getObjectContent();
    try {/*from w  ww .  ja va  2  s  .  c  o m*/
        StreamUtils.copy(objectContent, outputStream);
    } finally {
        objectContent.close();
    }
}

From source file:org.springframework.integration.aws.support.S3Session.java

License:Apache License

@Override
public InputStream readRaw(String source) throws IOException {
    String[] bucketKey = splitPathToBucketAndKey(source);
    S3Object s3Object = this.amazonS3.getObject(bucketKey[0], bucketKey[1]);
    return s3Object.getObjectContent();
}

From source file:org.symphonyoss.vb.util.AwsS3Client.java

License:Apache License

public InputStream getObject(S3ObjectSummary objectSummary) {

    S3Object object = null;

    try {/*from   ww  w .j av a  2  s.c  o  m*/
        logger.info("Retrieving object inputstream for s3://{}/{}", objectSummary.getBucketName(),
                objectSummary.getKey());
        object = s3Client
                .getObject(new GetObjectRequest(objectSummary.getBucketName(), objectSummary.getKey()));

    } catch (AmazonServiceException ase) {
        logger.error("Caught an AmazonServiceException, " + "which means your request made it "
                + "to Amazon S3, but was rejected with an error response " + "for some reason.");
        logger.error("Error Message:    " + ase.getMessage());
        logger.error("HTTP Status Code: " + ase.getStatusCode());
        logger.error("AWS Error Code:   " + ase.getErrorCode());
        logger.error("Error Type:       " + ase.getErrorType());
        logger.error("Request ID:       " + ase.getRequestId());

    } catch (AmazonClientException ace) {
        logger.error("Caught an AmazonClientException, " + "which means the client encountered "
                + "an internal error while trying to communicate" + " with S3, "
                + "such as not being able to access the network.");
        logger.error("Error Message: " + ace.getMessage());
    }
    return object == null ? null : object.getObjectContent();
}