use of software.amazon.awssdk.services.s3.S3Client in project aws-doc-sdk-examples by awsdocs.
the class PersonalizeDemoOnMovieLens20M method main.
public static void main(String[] args) throws Exception {
// Pre-flight step - 1
// Set credentials provider, s3 and personalize clients
// AWSStaticCredentialsProvider cred = getCredentialsProvider();
S3Client s3Client = S3Client.builder().region(region).build();
PersonalizeEventsClient personalizeEventsClient = PersonalizeEventsClient.builder().region(region).build();
PersonalizeClient personalizeClient = PersonalizeClient.builder().region(region).build();
PersonalizeRuntimeClient personalizeRuntimeClient = PersonalizeRuntimeClient.builder().region(region).build();
IamClient iamClient = IamClient.builder().region(Region.AWS_GLOBAL).build();
// Pre-flight step - 2
// Identify your datasets and export them to S3 bucket
DatasetProvider datasetProvider = new MovieLensDatasetProvider();
datasetProvider.exportDatasetToS3(DatasetType.INTERACTIONS, s3Client, S3_BUCKET, true);
// Pre-flight step - 3
// Personalize needs the ability to assume Roles in AWS in order to have the permissions to execute certain tasks, the lines below grant that.
DemoUtils.ensurePersonalizePermissionsOnS3Bucket(s3Client, S3_BUCKET);
// Pre-flight step - 4
// Ensure S3 bucket is accessible by Personalize
String role = PREFIX + "-role";
String roleArn = DemoUtils.createPersonalizeRole(iamClient, role);
// Step 1
// Create dataset group
// Create dataset schemas
// Create datasets
String datasetGroupArn = createSchemaAndDatasets(personalizeClient, datasetProvider, roleArn);
// step 2
// create solution and solution version
final String userPersonalizationRecipeArn = "arn:aws:personalize:::recipe/aws-user-personalization";
final String userPersonalizationSolutionName = PREFIX + "-user-personalization-solution";
final String awsUserPersonalizeSVArn = createSolutionAndSolutionVersion(personalizeClient, datasetGroupArn, userPersonalizationRecipeArn, userPersonalizationSolutionName);
System.out.println("AWS User Personalization solution and solution version created");
final String simsRecipeArn = "arn:aws:personalize:::recipe/aws-sims";
final String simsSolutionName = PREFIX + "-sims-solution";
final String simsSVArn = createSolutionAndSolutionVersion(personalizeClient, datasetGroupArn, simsRecipeArn, simsSolutionName);
System.out.println("SIMS solution and solution version created");
// step 3
// setup campaign
final String userPersonalizationCampaignName = PREFIX + "-user-personalization-campaign";
final CampaignManager userPersonalizationCM = new CampaignManager(personalizeClient, userPersonalizationCampaignName, awsUserPersonalizeSVArn);
final String userPersonalizationCampaignArn = userPersonalizationCM.createAndWaitForResource(true);
System.out.println("AWS User Personalization campaign deployed");
final String simsCampaignName = PREFIX + "-sims-campaign";
final CampaignManager simsCM = new CampaignManager(personalizeClient, simsCampaignName, simsSVArn);
final String simsCampaignArn = simsCM.createAndWaitForResource(true);
System.out.println("SIMS campaign deployed");
// Step 4
// Create event tracker for real time events
// AmazonPersonalizeEvents personalizeEvents = AmazonPersonalizeEventsClientBuilder.standard().withCredentials(cred).build();
final String eventTrackerName = PREFIX + "-event-tracker";
final EventTrackerManager etm = new EventTrackerManager(personalizeClient, eventTrackerName, datasetGroupArn);
final String eventTackerArn = etm.createAndWaitForResource(true);
final String eventTrackingId = etm.getTrackingId(eventTackerArn);
System.out.println("Event tracker created");
// step 5
// create runtime client for demo
runWebDemo(personalizeRuntimeClient, personalizeEventsClient, userPersonalizationCampaignArn, simsCampaignArn, eventTrackingId, datasetProvider);
}
use of software.amazon.awssdk.services.s3.S3Client in project aws-doc-sdk-examples by awsdocs.
the class S3Service method getObjectBytes.
public byte[] getObjectBytes(String bucketName, String keyName) {
S3Client s3 = getClient();
try {
GetObjectRequest objectRequest = GetObjectRequest.builder().key(keyName).bucket(bucketName).build();
// Return the byte[] from this object.
ResponseBytes<GetObjectResponse> objectBytes = s3.getObjectAsBytes(objectRequest);
return objectBytes.asByteArray();
} catch (S3Exception e) {
System.err.println(e.awsErrorDetails().errorMessage());
System.exit(1);
}
return null;
}
use of software.amazon.awssdk.services.s3.S3Client in project aws-doc-sdk-examples by awsdocs.
the class S3Service method listBucketObjects.
// Returns the names of all images in the given bucket.
public List<String> listBucketObjects(String bucketName) {
S3Client s3 = getClient();
String keyName;
List<String> keys = new ArrayList<>();
try {
ListObjectsRequest listObjects = ListObjectsRequest.builder().bucket(bucketName).build();
ListObjectsResponse res = s3.listObjects(listObjects);
List<S3Object> objects = res.contents();
for (S3Object myValue : objects) {
keyName = myValue.key();
keys.add(keyName);
}
return keys;
} catch (S3Exception e) {
System.err.println(e.awsErrorDetails().errorMessage());
System.exit(1);
}
return null;
}
use of software.amazon.awssdk.services.s3.S3Client in project aws-doc-sdk-examples by awsdocs.
the class S3Service method tagAssets.
// tag assets with labels in the given list.
public void tagAssets(List myList, String bucketName) {
try {
S3Client s3 = getClient();
int len = myList.size();
String assetName = "";
String labelName = "";
String labelValue = "";
// tag all the assets in the list.
for (Object o : myList) {
// Need to get the WorkItem from each list.
List innerList = (List) o;
for (Object value : innerList) {
WorkItem workItem = (WorkItem) value;
assetName = workItem.getKey();
labelName = workItem.getName();
labelValue = workItem.getConfidence();
tagExistingObject(s3, bucketName, assetName, labelName, labelValue);
}
}
} catch (S3Exception e) {
System.err.println(e.awsErrorDetails().errorMessage());
System.exit(1);
}
}
use of software.amazon.awssdk.services.s3.S3Client in project aws-doc-sdk-examples by awsdocs.
the class IAMScenario method assumeGivenRole.
// Invoke an Amazon S3 operation using the Assumed Role.
public static void assumeGivenRole(String roleArn, String roleSessionName, String bucketName) {
StsClient stsClient = StsClient.builder().region(Region.US_EAST_1).build();
try {
AssumeRoleRequest roleRequest = AssumeRoleRequest.builder().roleArn(roleArn).roleSessionName(roleSessionName).build();
AssumeRoleResponse roleResponse = stsClient.assumeRole(roleRequest);
Credentials myCreds = roleResponse.credentials();
String key = myCreds.accessKeyId();
String secKey = myCreds.secretAccessKey();
String secToken = myCreds.sessionToken();
// List all objects in an Amazon S3 bucket using the temp creds.
Region region = Region.US_EAST_1;
S3Client s3 = S3Client.builder().credentialsProvider(StaticCredentialsProvider.create(AwsSessionCredentials.create(key, secKey, secToken))).region(region).build();
System.out.println("Created a S3Client using temp credentials.");
System.out.println("Listing objects in " + bucketName);
ListObjectsRequest listObjects = ListObjectsRequest.builder().bucket(bucketName).build();
ListObjectsResponse res = s3.listObjects(listObjects);
List<S3Object> objects = res.contents();
for (S3Object myValue : objects) {
System.out.println("The name of the key is " + myValue.key());
System.out.println("The owner is " + myValue.owner());
}
} catch (StsException e) {
System.err.println(e.getMessage());
System.exit(1);
}
}
Aggregations