Example usage for com.amazonaws.services.s3.model BucketCrossOriginConfiguration BucketCrossOriginConfiguration

List of usage examples for com.amazonaws.services.s3.model BucketCrossOriginConfiguration BucketCrossOriginConfiguration

Introduction

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

Prototype

public BucketCrossOriginConfiguration() 

Source Link

Usage

From source file:com.amazon.util.ImageUploader.java

public static void uploadImage(String imageURL, String imageName, String folderName, String bucketName)
        throws MalformedURLException, IOException {
    // credentials object identifying user for authentication

    AWSCredentials credentials = new BasicAWSCredentials(System.getenv("AWS_S3_ACCESS_KEY"),
            System.getenv("AWS_S3_SECRET_ACCESS_KEY"));

    // create a client connection based on credentials
    AmazonS3 s3client = new AmazonS3Client(credentials);

    try {/*from   w w w .j  av a  2 s . c om*/
        if (!(s3client.doesBucketExist(bucketName))) {
            s3client.setRegion(Region.getRegion(Regions.US_EAST_1));
            // Note that CreateBucketRequest does not specify region. So bucket is 
            // created in the region specified in the client.
            s3client.createBucket(new CreateBucketRequest(bucketName));
        }

        //Enabe CORS:
        //     <?xml version="1.0" encoding="UTF-8"?>
        //<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
        //    <CORSRule>
        //        <AllowedOrigin>http://ask-ifr-download.s3.amazonaws.com</AllowedOrigin>
        //        <AllowedMethod>GET</AllowedMethod>
        //    </CORSRule>
        //</CORSConfiguration>
        BucketCrossOriginConfiguration configuration = new BucketCrossOriginConfiguration();

        CORSRule corsRule = new CORSRule()
                .withAllowedMethods(
                        Arrays.asList(new CORSRule.AllowedMethods[] { CORSRule.AllowedMethods.GET }))
                .withAllowedOrigins(Arrays.asList(new String[] { "http://ask-ifr-download.s3.amazonaws.com" }));
        configuration.setRules(Arrays.asList(new CORSRule[] { corsRule }));
        s3client.setBucketCrossOriginConfiguration(bucketName, configuration);

    } catch (AmazonServiceException ase) {
        System.out.println("Caught an AmazonServiceException, which " + "means your request made it "
                + "to Amazon S3, but was rejected with an error response" + " for some reason.");
        System.out.println("Error Message:    " + ase.getMessage());
        System.out.println("HTTP Status Code: " + ase.getStatusCode());
        System.out.println("AWS Error Code:   " + ase.getErrorCode());
        System.out.println("Error Type:       " + ase.getErrorType());
        System.out.println("Request ID:       " + ase.getRequestId());
    } catch (AmazonClientException ace) {
        System.out.println("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.");
        System.out.println("Error Message: " + ace.getMessage());
    }

    String fileName = folderName + SUFFIX + imageName + ".png";
    URL url = new URL(imageURL);

    ObjectMetadata omd = new ObjectMetadata();
    omd.setContentType("image/png");
    omd.setContentLength(url.openConnection().getContentLength());
    // upload file to folder and set it to public
    s3client.putObject(new PutObjectRequest(bucketName, fileName, url.openStream(), omd)
            .withCannedAcl(CannedAccessControlList.PublicRead));
}

From source file:com.eucalyptus.cloudformation.resources.standard.actions.AWSS3BucketResourceAction.java

License:Open Source License

private BucketCrossOriginConfiguration convertCrossOriginConfiguration(S3CorsConfiguration corsConfiguration) {
    BucketCrossOriginConfiguration bucketCrossOriginConfiguration = new BucketCrossOriginConfiguration();
    if (corsConfiguration.getCorsRule() != null) {
        List<CORSRule> rules = Lists.newArrayList();
        for (S3CorsConfigurationRule s3CorsConfigurationRule : corsConfiguration.getCorsRule()) {
            CORSRule rule = new CORSRule();
            rule.setAllowedHeaders(s3CorsConfigurationRule.getAllowedHeaders());
            if (s3CorsConfigurationRule.getAllowedMethods() != null) {
                List<CORSRule.AllowedMethods> allowedMethods = Lists.newArrayList();
                for (String allowedMethodStr : s3CorsConfigurationRule.getAllowedMethods()) {
                    allowedMethods.add(CORSRule.AllowedMethods.valueOf(allowedMethodStr));
                }/*from   ww  w .j  ava 2 s . c om*/
                rule.setAllowedMethods(allowedMethods);
            }
            rule.setAllowedOrigins(s3CorsConfigurationRule.getAllowedOrigins());
            rule.setExposedHeaders(s3CorsConfigurationRule.getExposedHeaders());
            rule.setId(s3CorsConfigurationRule.getId());
            rule.setMaxAgeSeconds(s3CorsConfigurationRule.getMaxAge());
            rules.add(rule);
        }
        bucketCrossOriginConfiguration.setRules(rules);
    }
    return bucketCrossOriginConfiguration;
}

From source file:com.maya.portAuthority.util.ImageUploader.java

public static void uploadImage(String imageURL, String imageName, String bucketName)
         throws MalformedURLException, IOException {
     // credentials object identifying user for authentication

     AWSCredentials credentials = new BasicAWSCredentials("AKIAJBFSMHRTIQQ7BKYA",
             "AdHgeP4dyWInWwPn9YlfxFCm3qP1lHjdxOxeJqDa");

     // create a client connection based on credentials
     AmazonS3 s3client = new AmazonS3Client(credentials);

     String folderName = "image"; //folder name
     //    String bucketName = "ppas-image-upload"; //must be unique

     try {// w ww .j  a v a  2s  .co  m
         if (!(s3client.doesBucketExist(bucketName))) {
             s3client.setRegion(Region.getRegion(Regions.US_EAST_1));
             // Note that CreateBucketRequest does not specify region. So bucket is 
             // created in the region specified in the client.
             s3client.createBucket(new CreateBucketRequest(bucketName));
         }

         //Enabe CORS:
         //     <?xml version="1.0" encoding="UTF-8"?>
         //<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
         //    <CORSRule>
         //        <AllowedOrigin>http://ask-ifr-download.s3.amazonaws.com</AllowedOrigin>
         //        <AllowedMethod>GET</AllowedMethod>
         //    </CORSRule>
         //</CORSConfiguration>
         BucketCrossOriginConfiguration configuration = new BucketCrossOriginConfiguration();

         CORSRule corsRule = new CORSRule()
                 .withAllowedMethods(
                         Arrays.asList(new CORSRule.AllowedMethods[] { CORSRule.AllowedMethods.GET }))
                 .withAllowedOrigins(Arrays.asList(new String[] { "http://ask-ifr-download.s3.amazonaws.com" }));
         configuration.setRules(Arrays.asList(new CORSRule[] { corsRule }));
         s3client.setBucketCrossOriginConfiguration(bucketName, configuration);

     } catch (AmazonServiceException ase) {
         System.out.println("Caught an AmazonServiceException, which " + "means your request made it "
                 + "to Amazon S3, but was rejected with an error response" + " for some reason.");
         System.out.println("Error Message:    " + ase.getMessage());
         System.out.println("HTTP Status Code: " + ase.getStatusCode());
         System.out.println("AWS Error Code:   " + ase.getErrorCode());
         System.out.println("Error Type:       " + ase.getErrorType());
         System.out.println("Request ID:       " + ase.getRequestId());
     } catch (AmazonClientException ace) {
         System.out.println("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.");
         System.out.println("Error Message: " + ace.getMessage());
     }

     String fileName = folderName + SUFFIX + imageName + ".png";
     URL url = new URL(imageURL);

     ObjectMetadata omd = new ObjectMetadata();
     omd.setContentType("image/png");
     omd.setContentLength(url.openConnection().getContentLength());
     // upload file to folder and set it to public
     s3client.putObject(new PutObjectRequest(bucketName, fileName, url.openStream(), omd)
             .withCannedAcl(CannedAccessControlList.PublicRead));
 }

From source file:mail.server.storage.AWSStorageCreation.java

License:GNU General Public License

public Map<String, String> create(String email, String region) throws Exception {
    log.debug("I will now figure out what region to put things in", region);
    Region awsRegion = Region.valueOf(region);
    String awsRegionString = awsRegion.toString();
    if (awsRegionString == null)
        awsRegionString = "";

    String awsRegionStringEndPoint = awsRegionString.isEmpty() ? "s3.amazonaws.com"
            : ("s3-" + awsRegionString + ".amazonaws.com");

    log.debug("I will now log in to S3 and the IdentityManagement to check these credentials.");

    SimpleAWSCredentials credentials = new SimpleAWSCredentials(awsAccessKeyId, awsSecretKey);
    AmazonS3 s3 = new AmazonS3Client(credentials);
    AmazonIdentityManagement im = new AmazonIdentityManagementClient(credentials);

    log.debug("Successfully logged into S3");

    log.debug("I will now derive names for items");
    deriveNames(generateBucketName(email));

    log.debug("I will now try to:\n" + "  1. Create the S3 Bucket with name ", bucketName,
            "\n" + "  2. Create two IAM Identities for permissions -\n" + "       ", writeIdentity,
            " to be sent to the mail server to be able to write to the mailbox.\n" + "       ", writeIdentity,
            " to be stored in your configuration to enable the mail client to read and write mail.\n\n");

    s3.setEndpoint(awsRegionStringEndPoint);
    s3.createBucket(bucketName, awsRegion);

    log.debug("Setting website configuration");

    BucketWebsiteConfiguration bwc = new BucketWebsiteConfiguration("index.html");
    s3.setBucketWebsiteConfiguration(bucketName, bwc);
    log.debug("Done");

    log.debug("Enabling CORS");
    CORSRule rule1 = new CORSRule().withId("CORSRule1")
            .withAllowedMethods(Arrays.asList(new CORSRule.AllowedMethods[] { CORSRule.AllowedMethods.GET,
                    CORSRule.AllowedMethods.PUT, CORSRule.AllowedMethods.DELETE }))
            .withAllowedOrigins(Arrays.asList(new String[] { "*" })).withMaxAgeSeconds(3000)
            .withAllowedHeaders(Arrays.asList(new String[] { "*" }))
            .withExposedHeaders(Arrays.asList(new String[] { "ETag" }));

    BucketCrossOriginConfiguration cors = new BucketCrossOriginConfiguration();
    cors.setRules(Arrays.asList(new CORSRule[] { rule1 }));

    s3.setBucketCrossOriginConfiguration(bucketName, cors);
    log.debug("Done");

    log.format("Creating group %s ... ", groupName);
    im.createGroup(new CreateGroupRequest().withGroupName(groupName));
    log.debug("Done");

    log.format("Creating user %s ... ", writeIdentity);
    im.createUser(new CreateUserRequest().withUserName(writeIdentity));
    log.debug("Done");

    log.format("Adding user %s to group %s ... ", writeIdentity, groupName);
    im.addUserToGroup(new AddUserToGroupRequest().withGroupName(groupName).withUserName(writeIdentity));
    log.debug("Done");

    log.format("Creating user %s ... ", readWriteIdentity);
    im.createUser(new CreateUserRequest().withUserName(readWriteIdentity));
    log.debug("Done");

    log.format("Adding user %s to group %s ... ", readWriteIdentity, groupName);
    im.addUserToGroup(new AddUserToGroupRequest().withGroupName(groupName).withUserName(readWriteIdentity));
    log.debug("Done");

    log.format("Creating permissions for %s to write to bucket %s ... \n", writeIdentity, bucketName);

    String writePolicyRaw = "{                        \n" + "  #Statement#: [            \n"
            + "    {                     \n" + "      #Sid#: #SID#,         \n"
            + "      #Action#: [            \n" + "        #s3:PutObject#,      \n"
            + "        #s3:PutObjectAcl#      \n" + "      ],                  \n"
            + "      #Effect#: #Allow#,      \n" + "      #Resource#: [         \n"
            + "        #arn:aws:s3:::BUCKET/*#\n" + "      ]                  \n"
            + "    }                     \n" + "  ]                     \n" + "}\n";

    String writePolicy = writePolicyRaw.replaceAll("#", "\"").replace("SID", policyWriteName).replace("BUCKET",
            bucketName);//w ww . ja  v  a 2s  .  com
    //      q.println ("Policy definition: " + writePolicy);
    im.putUserPolicy(new PutUserPolicyRequest().withUserName(writeIdentity).withPolicyDocument(writePolicy)
            .withPolicyName(policyWriteName));
    log.debug("Done");

    log.format("Creating permissions for %s to read/write to bucket %s ... \n", writeIdentity, bucketName);

    String readWritePolicyRaw = "{                        \n" + "  #Statement#: [            \n"
            + "  {                     \n" + "      #Sid#: #SID#,         \n"
            + "      #Action#: [            \n" + "        #s3:PutObject#,      \n"
            + "        #s3:PutObjectAcl#,      \n" + "        #s3:DeleteObject#,      \n"
            + "        #s3:Get*#,            \n" + "        #s3:List*#            \n"
            + "      ],                  \n" + "      #Effect#: #Allow#,      \n"
            + "      #Resource#: [         \n" + "        #arn:aws:s3:::BUCKET/*#,\n"
            + "        #arn:aws:s3:::BUCKET#   \n" + "      ]                  \n"
            + "    }                     \n" + "  ]                     \n" + "}\n";

    String readWritePolicy = readWritePolicyRaw.replaceAll("#", "\"").replace("SID", policyReadWriteName)
            .replace("BUCKET", bucketName);
    //      q.println ("Policy definition: " + readPolicy);
    im.putUserPolicy(new PutUserPolicyRequest().withUserName(readWriteIdentity)
            .withPolicyDocument(readWritePolicy).withPolicyName(policyReadWriteName));
    log.debug("Done");

    log.format("Requesting access key for %s", writeIdentity);
    writeAccessKey = im.createAccessKey(new CreateAccessKeyRequest().withUserName(writeIdentity))
            .getAccessKey();
    log.format("Received [%s] [%s] Done.\n", writeAccessKey.getAccessKeyId(),
            writeAccessKey.getSecretAccessKey());

    log.format("Requesting access key for %s", readWriteIdentity);
    readWriteAccessKey = im.createAccessKey(new CreateAccessKeyRequest().withUserName(readWriteIdentity))
            .getAccessKey();
    log.format("Received [%s] [%s] Done.\n", readWriteAccessKey.getAccessKeyId(),
            readWriteAccessKey.getSecretAccessKey());

    log.debug();
    log.debug("I have finished the creating the S3 items.\n");

    return Maps.toMap("bucketName", bucketName, "bucketRegion", awsRegionString, "writeAccessKey",
            writeAccessKey.getAccessKeyId(), "writeSecretKey", writeAccessKey.getSecretAccessKey(),
            "readWriteAccessKey", readWriteAccessKey.getAccessKeyId(), "readWriteSecretKey",
            readWriteAccessKey.getSecretAccessKey());
}

From source file:org.duracloud.s3task.streaminghls.EnableHlsTaskRunner.java

License:Apache License

private void setCorsPolicy(String bucketName, List<String> allowedOrigins, String dcHost) {
    // If list is null or empty, add a default value
    if (null == allowedOrigins || allowedOrigins.isEmpty()) {
        allowedOrigins = new ArrayList<>();
        allowedOrigins.add("https://*");
    } else { // If list is not empty, append DuraCloud host to allow streaming via DurAdmin
        allowedOrigins.add("https://" + dcHost);
    }//from   ww w.  jav  a2s  . c  o m

    List<CORSRule> corsRules = new ArrayList<>();

    for (String allowedOrigin : allowedOrigins) {
        CORSRule corsRule = new CORSRule();
        corsRule.setAllowedOrigins(allowedOrigin);
        corsRule.setAllowedMethods(CORSRule.AllowedMethods.GET, CORSRule.AllowedMethods.HEAD);
        corsRule.setMaxAgeSeconds(3000);
        corsRule.setAllowedHeaders("*");
        corsRules.add(corsRule);
    }

    BucketCrossOriginConfiguration corsConfig = new BucketCrossOriginConfiguration().withRules(corsRules);

    s3Client.setBucketCrossOriginConfiguration(bucketName, corsConfig);
}