· 8 years ago · Dec 08, 2017, 04:12 AM
1package bluemixtest;
2
3import com.amazonaws.ClientConfiguration;
4import com.amazonaws.SDKGlobalConfiguration;
5import com.amazonaws.auth.AWSCredentials;
6import com.amazonaws.auth.AWSStaticCredentialsProvider;
7import com.amazonaws.auth.BasicAWSCredentials;
8import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration;
9import com.amazonaws.services.s3.AmazonS3;
10import com.amazonaws.services.s3.AmazonS3ClientBuilder;
11import com.amazonaws.services.s3.model.Bucket;
12import com.amazonaws.services.s3.model.ListObjectsRequest;
13import com.amazonaws.services.s3.model.ObjectListing;
14import com.amazonaws.services.s3.model.S3ObjectSummary;
15import com.ibm.oauth.BasicIBMOAuthCredentials;
16import java.util.List;
17
18public class BlueMixTest {
19
20private static AmazonS3 _s3Client;
21
22public static void main(String[] args) {
23 SDKGlobalConfiguration.IAM_ENDPOINT = "https://iam.bluemix.net/oidc/token";
24
25 String bucketName = "********";
26 String api_key = "********";
27 String service_instance_id = "********";
28 String endpoint_url = "https://s3-api.us-geo.objectstorage.softlayer.net";
29 String location = "us";
30
31 _s3Client = createClient(api_key, service_instance_id, endpoint_url, location);
32 listObjects(bucketName, _s3Client);
33 listBuckets(_s3Client);
34}
35
36public static AmazonS3 createClient(String api_key, String service_instance_id, String endpoint_url, String location) {
37 AWSCredentials credentials;
38 if (endpoint_url.contains("objectstorage.softlayer.net")) {
39 credentials = new BasicIBMOAuthCredentials(api_key, service_instance_id);
40 } else {
41 String access_key = api_key;
42 String secret_key = service_instance_id;
43 credentials = new BasicAWSCredentials(access_key, secret_key);
44 }
45 ClientConfiguration clientConfig = new ClientConfiguration().withRequestTimeout(5000);
46 clientConfig.setUseTcpKeepAlive(true);
47
48 AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(credentials))
49 .withEndpointConfiguration(new EndpointConfiguration(endpoint_url, location)).withPathStyleAccessEnabled(true)
50 .withClientConfiguration(clientConfig).build();
51 return s3Client;
52}
53
54public static void listObjects(String bucketName, AmazonS3 s3Client) {
55 System.out.println("Listing objects in bucket " + bucketName);
56 ObjectListing objectListing = s3Client.listObjects(new ListObjectsRequest().withBucketName(bucketName));
57 for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) {
58 System.out.println(" - " + objectSummary.getKey() + " " + "(size = " + objectSummary.getSize() + ")");
59 }
60 System.out.println();
61}
62
63public static void listBuckets(AmazonS3 s3Client) {
64 System.out.println("Listing buckets");
65 final List<Bucket> bucketList = _s3Client.listBuckets();
66 for (final Bucket bucket : bucketList) {
67 System.out.println(bucket.getName());
68 }
69 System.out.println();
70}
71}