/** * * Create a bucket with the specified name in the specified project. If successful, return the * created bucket metadata. * * <p>For more information, see <a * href="https://cloud.google.com/storage/docs/json_api/v1/buckets/insert" * target="_blank">Buckets:insert</a> * * @param bucketName The name of the bucket to create. * @throws IOException IO error * @return true if the operation succeeded; otherwise, false */ public static boolean insertBucket(String bucketName) throws IOException { displayMessageHeader("Create the bucket: " + bucketName); Storage.Buckets buckets = storageService.buckets(); boolean bucketCreated = false; // Set the bucket access control list. ObjectAccessControl acl = new ObjectAccessControl(); acl.setEntity("allAuthenticatedUsers").setRole("READER"); // Create bucket. Bucket newBucket = new Bucket().setName(bucketName); newBucket.setLocation("US"); newBucket.setDefaultObjectAcl(ImmutableList.of(acl)); Storage.Buckets.Insert insertBucket = buckets.insert(settings.getProject(), newBucket); try { @SuppressWarnings("unused") Bucket createdBucket = insertBucket.execute(); bucketCreated = true; System.out.println(String.format("Bucket %s created", bucketName)); } catch (GoogleJsonResponseException e) { GoogleJsonError error = e.getDetails(); if (error.getCode() == HTTP_CONFLICT && error.getMessage().contains("You already own this bucket.")) { System.out.println("already exists"); } else { throw e; } } return bucketCreated; }
/* * Display bucket information. */ private static void displayBucketInformation(Bucket bucket) { StringBuffer results = new StringBuffer(); results.append(String.format("%n name %s %n", bucket.getName())); results.append(String.format(" location %s %n", bucket.getLocation())); results.append(String.format(" timeCreated %s %n", bucket.getTimeCreated())); results.append(String.format(" owner %s %n", bucket.getOwner())); results.append(String.format(" acl %s %n", bucket.getAcl())); // Display header. System.out.println(results.toString()); }