diff --git a/samples/snippets/src/main/java/com/example/storage/ConfigureRetries.java b/samples/snippets/src/main/java/com/example/storage/ConfigureRetries.java index 5cdf01b1b6..ee26c3a5fd 100644 --- a/samples/snippets/src/main/java/com/example/storage/ConfigureRetries.java +++ b/samples/snippets/src/main/java/com/example/storage/ConfigureRetries.java @@ -26,13 +26,13 @@ import org.threeten.bp.Duration; public final class ConfigureRetries { - public static void main(String[] args) { + public static void main(String[] args) throws Exception { String bucketName = "my-bucket"; String blobName = "blob/to/delete"; deleteBlob(bucketName, blobName); } - static void deleteBlob(String bucketName, String blobName) { + static void deleteBlob(String bucketName, String blobName) throws Exception { // Customize retry behavior RetrySettings retrySettings = StorageOptions.getDefaultRetrySettings().toBuilder() @@ -53,14 +53,16 @@ static void deleteBlob(String bucketName, String blobName) { .build(); // Instantiate a client - Storage storage = alwaysRetryStorageOptions.getService(); + try (Storage storage = alwaysRetryStorageOptions.getService()) { - // Delete the blob - BlobId blobId = BlobId.of(bucketName, blobName); - boolean success = storage.delete(blobId); + // Delete the blob + BlobId blobId = BlobId.of(bucketName, blobName); + boolean success = storage.delete(blobId); - System.out.printf( - "Deletion of Blob %s completed %s.%n", blobId, success ? "successfully" : "unsuccessfully"); + System.out.printf( + "Deletion of Blob %s completed %s.%n", + blobId, success ? "successfully" : "unsuccessfully"); + } } } // [END storage_configure_retries] diff --git a/samples/snippets/src/main/java/com/example/storage/GenerateSignedPostPolicyV4.java b/samples/snippets/src/main/java/com/example/storage/GenerateSignedPostPolicyV4.java index a1dd9ebaaa..f19f1ba1cf 100644 --- a/samples/snippets/src/main/java/com/example/storage/GenerateSignedPostPolicyV4.java +++ b/samples/snippets/src/main/java/com/example/storage/GenerateSignedPostPolicyV4.java @@ -37,7 +37,7 @@ public class GenerateSignedPostPolicyV4 { * Storage.generateSignedPostPolicyV4 for more details. */ public static void generateSignedPostPolicyV4( - String projectId, String bucketName, String blobName) { + String projectId, String bucketName, String blobName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -47,37 +47,39 @@ public static void generateSignedPostPolicyV4( // The name to give the object uploaded to GCS // String blobName = "your-object-name" - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + StorageOptions storageOptions = StorageOptions.newBuilder().setProjectId(projectId).build(); + try (Storage storage = storageOptions.getService()) { - PostPolicyV4.PostFieldsV4 fields = - PostPolicyV4.PostFieldsV4.newBuilder().setCustomMetadataField("test", "data").build(); + PostPolicyV4.PostFieldsV4 fields = + PostPolicyV4.PostFieldsV4.newBuilder().setCustomMetadataField("test", "data").build(); - PostPolicyV4 policy = - storage.generateSignedPostPolicyV4( - BlobInfo.newBuilder(bucketName, blobName).build(), 10, TimeUnit.MINUTES, fields); + PostPolicyV4 policy = + storage.generateSignedPostPolicyV4( + BlobInfo.newBuilder(bucketName, blobName).build(), 10, TimeUnit.MINUTES, fields); - StringBuilder htmlForm = - new StringBuilder( - "
\n"); - for (Map.Entry entry : policy.getFields().entrySet()) { - htmlForm.append( - " \n"); - } - htmlForm.append("
\n"); - htmlForm.append("
\n"); - htmlForm.append("\n"); + StringBuilder htmlForm = + new StringBuilder( + "
\n"); + for (Map.Entry entry : policy.getFields().entrySet()) { + htmlForm.append( + " \n"); + } + htmlForm.append("
\n"); + htmlForm.append("
\n"); + htmlForm.append("\n"); - System.out.println( - "You can use the following HTML form to upload an object to bucket " - + bucketName - + " for the next ten minutes:"); - System.out.println(htmlForm.toString()); + System.out.println( + "You can use the following HTML form to upload an object to bucket " + + bucketName + + " for the next ten minutes:"); + System.out.println(htmlForm.toString()); + } } } // [END storage_generate_signed_post_policy_v4] diff --git a/samples/snippets/src/main/java/com/example/storage/GetServiceAccount.java b/samples/snippets/src/main/java/com/example/storage/GetServiceAccount.java index e190376a0a..49c8b1b6fe 100644 --- a/samples/snippets/src/main/java/com/example/storage/GetServiceAccount.java +++ b/samples/snippets/src/main/java/com/example/storage/GetServiceAccount.java @@ -22,14 +22,16 @@ import com.google.cloud.storage.StorageOptions; public class GetServiceAccount { - public static void getServiceAccount(String projectId) { + public static void getServiceAccount(String projectId) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - ServiceAccount serviceAccount = storage.getServiceAccount(projectId); - System.out.println( - "The GCS service account for project " + projectId + " is: " + serviceAccount.getEmail()); + StorageOptions storageOptions = StorageOptions.newBuilder().setProjectId(projectId).build(); + try (Storage storage = storageOptions.getService()) { + ServiceAccount serviceAccount = storage.getServiceAccount(projectId); + System.out.println( + "The GCS service account for project " + projectId + " is: " + serviceAccount.getEmail()); + } } } // [END storage_get_service_account] diff --git a/samples/snippets/src/main/java/com/example/storage/QuickstartOpenTelemetrySample.java b/samples/snippets/src/main/java/com/example/storage/QuickstartOpenTelemetrySample.java index dd062a1ded..ed4c27eecf 100644 --- a/samples/snippets/src/main/java/com/example/storage/QuickstartOpenTelemetrySample.java +++ b/samples/snippets/src/main/java/com/example/storage/QuickstartOpenTelemetrySample.java @@ -51,8 +51,10 @@ public static void main(String... args) throws Exception { .build()) .build(); StorageOptions options = StorageOptions.newBuilder().setOpenTelemetry(openTelemetry).build(); - Storage storage = options.getService(); - System.out.println("Created an instance of storage with OpenTelemetry configured"); + try (OpenTelemetrySdk otel = openTelemetry; + Storage storage = options.getService()) { + System.out.println("Created an instance of storage with OpenTelemetry configured"); + } } } // [END storage_enable_otel_tracing] diff --git a/samples/snippets/src/main/java/com/example/storage/QuickstartSample.java b/samples/snippets/src/main/java/com/example/storage/QuickstartSample.java index a5ef2b16d7..178f37113b 100644 --- a/samples/snippets/src/main/java/com/example/storage/QuickstartSample.java +++ b/samples/snippets/src/main/java/com/example/storage/QuickstartSample.java @@ -26,15 +26,16 @@ public class QuickstartSample { public static void main(String... args) throws Exception { // Instantiates a client - Storage storage = StorageOptions.getDefaultInstance().getService(); + try (Storage storage = StorageOptions.getDefaultInstance().getService()) { - // The name for the new bucket - String bucketName = args[0]; // "my-new-bucket"; + // The name for the new bucket + String bucketName = args[0]; // "my-new-bucket"; - // Creates the new bucket - Bucket bucket = storage.create(BucketInfo.of(bucketName)); + // Creates the new bucket + Bucket bucket = storage.create(BucketInfo.of(bucketName)); - System.out.printf("Bucket %s created.%n", bucket.getName()); + System.out.printf("Bucket %s created.%n", bucket.getName()); + } } } // [END storage_quickstart] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketDefaultOwner.java b/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketDefaultOwner.java index 8e2e369fda..03ceec8a02 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketDefaultOwner.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketDefaultOwner.java @@ -27,7 +27,7 @@ public class AddBucketDefaultOwner { - public static void addBucketDefaultOwner(String bucketName, String userEmail) { + public static void addBucketDefaultOwner(String bucketName, String userEmail) throws Exception { // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; @@ -35,12 +35,13 @@ public static void addBucketDefaultOwner(String bucketName, String userEmail) { // The email of the user you wish to add as a default owner // String userEmail = "someuser@domain.com" - Storage storage = StorageOptions.newBuilder().build().getService(); - Bucket bucket = storage.get(bucketName); - Acl newDefaultOwner = Acl.of(new User(userEmail), Role.OWNER); + try (Storage storage = StorageOptions.newBuilder().build().getService()) { + Bucket bucket = storage.get(bucketName); + Acl newDefaultOwner = Acl.of(new User(userEmail), Role.OWNER); - bucket.createDefaultAcl(newDefaultOwner); - System.out.println("Added user " + userEmail + " as an owner on " + bucketName); + bucket.createDefaultAcl(newDefaultOwner); + System.out.println("Added user " + userEmail + " as an owner on " + bucketName); + } } } // [END storage_add_bucket_default_owner] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketIamConditionalBinding.java b/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketIamConditionalBinding.java index e1d08d3872..131fe19d64 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketIamConditionalBinding.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketIamConditionalBinding.java @@ -29,7 +29,8 @@ public class AddBucketIamConditionalBinding { /** Example of adding a conditional binding to the Bucket-level IAM */ - public static void addBucketIamConditionalBinding(String projectId, String bucketName) { + public static void addBucketIamConditionalBinding(String projectId, String bucketName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -38,44 +39,46 @@ public static void addBucketIamConditionalBinding(String projectId, String bucke // For more information please read: // https://cloud.google.com/storage/docs/access-control/iam - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - Policy originalPolicy = - storage.getIamPolicy(bucketName, Storage.BucketSourceOption.requestedPolicyVersion(3)); + Policy originalPolicy = + storage.getIamPolicy(bucketName, Storage.BucketSourceOption.requestedPolicyVersion(3)); - String role = "roles/storage.objectViewer"; - String member = "group:example@google.com"; + String role = "roles/storage.objectViewer"; + String member = "group:example@google.com"; - // Create a condition - String conditionTitle = "Title"; - String conditionDescription = "Description"; - String conditionExpression = - "resource.name.startsWith(\"projects/_/buckets/bucket-name/objects/prefix-a-\")"; - Condition.Builder conditionBuilder = Condition.newBuilder(); - conditionBuilder.setTitle(conditionTitle); - conditionBuilder.setDescription(conditionDescription); - conditionBuilder.setExpression(conditionExpression); + // Create a condition + String conditionTitle = "Title"; + String conditionDescription = "Description"; + String conditionExpression = + "resource.name.startsWith(\"projects/_/buckets/bucket-name/objects/prefix-a-\")"; + Condition.Builder conditionBuilder = Condition.newBuilder(); + conditionBuilder.setTitle(conditionTitle); + conditionBuilder.setDescription(conditionDescription); + conditionBuilder.setExpression(conditionExpression); - // getBindingsList() returns an ImmutableList, we copy over to an ArrayList so it's mutable - List bindings = new ArrayList(originalPolicy.getBindingsList()); + // getBindingsList() returns an ImmutableList, we copy over to an ArrayList so it's mutable + List bindings = new ArrayList(originalPolicy.getBindingsList()); - // Add condition to a binding - Binding.Builder newBindingBuilder = - Binding.newBuilder() - .setRole(role) - .setMembers(Arrays.asList(member)) - .setCondition(conditionBuilder.build()); - bindings.add(newBindingBuilder.build()); + // Add condition to a binding + Binding.Builder newBindingBuilder = + Binding.newBuilder() + .setRole(role) + .setMembers(Arrays.asList(member)) + .setCondition(conditionBuilder.build()); + bindings.add(newBindingBuilder.build()); - // Update policy with new conditional binding - Policy.Builder updatedPolicyBuilder = originalPolicy.toBuilder(); - updatedPolicyBuilder.setBindings(bindings).setVersion(3); + // Update policy with new conditional binding + Policy.Builder updatedPolicyBuilder = originalPolicy.toBuilder(); + updatedPolicyBuilder.setBindings(bindings).setVersion(3); - storage.setIamPolicy(bucketName, updatedPolicyBuilder.build()); + storage.setIamPolicy(bucketName, updatedPolicyBuilder.build()); - System.out.printf( - "Added %s with role %s to %s with condition %s %s %s\n", - member, role, bucketName, conditionTitle, conditionDescription, conditionExpression); + System.out.printf( + "Added %s with role %s to %s with condition %s %s %s\n", + member, role, bucketName, conditionTitle, conditionDescription, conditionExpression); + } } } // [END storage_add_bucket_conditional_iam_binding] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketIamMember.java b/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketIamMember.java index c5c86e6224..374fb80c88 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketIamMember.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketIamMember.java @@ -28,7 +28,7 @@ public class AddBucketIamMember { /** Example of adding a member to the Bucket-level IAM */ - public static void addBucketIamMember(String projectId, String bucketName) { + public static void addBucketIamMember(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -37,28 +37,31 @@ public static void addBucketIamMember(String projectId, String bucketName) { // For more information please read: // https://cloud.google.com/storage/docs/access-control/iam - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - Policy originalPolicy = - storage.getIamPolicy(bucketName, Storage.BucketSourceOption.requestedPolicyVersion(3)); + Policy originalPolicy = + storage.getIamPolicy(bucketName, Storage.BucketSourceOption.requestedPolicyVersion(3)); - String role = "roles/storage.objectViewer"; - String member = "group:example@google.com"; + String role = "roles/storage.objectViewer"; + String member = "group:example@google.com"; - // getBindingsList() returns an ImmutableList and copying over to an ArrayList so it's mutable. - List bindings = new ArrayList(originalPolicy.getBindingsList()); + // getBindingsList() returns an ImmutableList and copying over to an ArrayList so it's + // mutable. + List bindings = new ArrayList(originalPolicy.getBindingsList()); - // Create a new binding using role and member - Binding.Builder newMemberBindingBuilder = Binding.newBuilder(); - newMemberBindingBuilder.setRole(role).setMembers(Arrays.asList(member)); - bindings.add(newMemberBindingBuilder.build()); + // Create a new binding using role and member + Binding.Builder newMemberBindingBuilder = Binding.newBuilder(); + newMemberBindingBuilder.setRole(role).setMembers(Arrays.asList(member)); + bindings.add(newMemberBindingBuilder.build()); - // Update policy to add member - Policy.Builder updatedPolicyBuilder = originalPolicy.toBuilder(); - updatedPolicyBuilder.setBindings(bindings).setVersion(3); - Policy updatedPolicy = storage.setIamPolicy(bucketName, updatedPolicyBuilder.build()); + // Update policy to add member + Policy.Builder updatedPolicyBuilder = originalPolicy.toBuilder(); + updatedPolicyBuilder.setBindings(bindings).setVersion(3); + Policy updatedPolicy = storage.setIamPolicy(bucketName, updatedPolicyBuilder.build()); - System.out.printf("Added %s with role %s to %s\n", member, role, bucketName); + System.out.printf("Added %s with role %s to %s\n", member, role, bucketName); + } } } // [END storage_add_bucket_iam_member] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketLabel.java b/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketLabel.java index 473f270215..a1ce5d1d06 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketLabel.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketLabel.java @@ -26,7 +26,7 @@ public class AddBucketLabel { public static void addBucketLabel( - String projectId, String bucketName, String labelKey, String labelValue) { + String projectId, String bucketName, String labelKey, String labelValue) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -42,16 +42,24 @@ public static void addBucketLabel( Map newLabels = new HashMap<>(); newLabels.put(labelKey, labelValue); - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - Map labels = bucket.getLabels(); - if (labels != null) { - newLabels.putAll(labels); - } - bucket.toBuilder().setLabels(newLabels).build().update(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + Map labels = bucket.getLabels(); + if (labels != null) { + newLabels.putAll(labels); + } + bucket.toBuilder().setLabels(newLabels).build().update(); - System.out.println( - "Added label " + labelKey + " with value " + labelValue + " to bucket " + bucketName + "."); + System.out.println( + "Added label " + + labelKey + + " with value " + + labelValue + + " to bucket " + + bucketName + + "."); + } } } // [END storage_add_bucket_label] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketOwner.java b/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketOwner.java index ddbd5bfefe..0d224719da 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketOwner.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/AddBucketOwner.java @@ -27,7 +27,8 @@ public class AddBucketOwner { - public static void addBucketOwner(String projectId, String bucketName, String userEmail) { + public static void addBucketOwner(String projectId, String bucketName, String userEmail) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -37,12 +38,14 @@ public static void addBucketOwner(String projectId, String bucketName, String us // Email of the user you wish to add as an owner // String userEmail = "someuser@domain.com" - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - Acl newOwner = Acl.of(new User(userEmail), Role.OWNER); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + Acl newOwner = Acl.of(new User(userEmail), Role.OWNER); - bucket.createAcl(newOwner); - System.out.println("Added user " + userEmail + " as an owner on " + bucketName); + bucket.createAcl(newOwner); + System.out.println("Added user " + userEmail + " as an owner on " + bucketName); + } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/ChangeDefaultStorageClass.java b/samples/snippets/src/main/java/com/example/storage/bucket/ChangeDefaultStorageClass.java index 03c4358f6e..4b8c0c837c 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/ChangeDefaultStorageClass.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/ChangeDefaultStorageClass.java @@ -23,7 +23,8 @@ import com.google.cloud.storage.StorageOptions; public class ChangeDefaultStorageClass { - public static void changeDefaultStorageClass(String projectId, String bucketName) { + public static void changeDefaultStorageClass(String projectId, String bucketName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -34,15 +35,17 @@ public static void changeDefaultStorageClass(String projectId, String bucketName // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/storage/StorageClass.html StorageClass storageClass = StorageClass.COLDLINE; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - bucket = bucket.toBuilder().setStorageClass(storageClass).build().update(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + bucket = bucket.toBuilder().setStorageClass(storageClass).build().update(); - System.out.println( - "Default storage class for bucket " - + bucketName - + " has been set to " - + bucket.getStorageClass()); + System.out.println( + "Default storage class for bucket " + + bucketName + + " has been set to " + + bucket.getStorageClass()); + } } } // [END storage_change_default_storage_class] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/ConfigureBucketCors.java b/samples/snippets/src/main/java/com/example/storage/bucket/ConfigureBucketCors.java index 3097978ad3..d934d833ea 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/ConfigureBucketCors.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/ConfigureBucketCors.java @@ -30,7 +30,8 @@ public static void configureBucketCors( String bucketName, String origin, String responseHeader, - Integer maxAgeSeconds) { + Integer maxAgeSeconds) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -47,31 +48,33 @@ public static void configureBucketCors( // requests // Integer maxAgeSeconds = 3600; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); - // See the HttpMethod documentation for other HTTP methods available: - // https://cloud.google.com/appengine/docs/standard/java/javadoc/com/google/appengine/api/urlfetch/HTTPMethod - HttpMethod method = HttpMethod.GET; + // See the HttpMethod documentation for other HTTP methods available: + // https://cloud.google.com/appengine/docs/standard/java/javadoc/com/google/appengine/api/urlfetch/HTTPMethod + HttpMethod method = HttpMethod.GET; - Cors cors = - Cors.newBuilder() - .setOrigins(ImmutableList.of(Cors.Origin.of(origin))) - .setMethods(ImmutableList.of(method)) - .setResponseHeaders(ImmutableList.of(responseHeader)) - .setMaxAgeSeconds(maxAgeSeconds) - .build(); + Cors cors = + Cors.newBuilder() + .setOrigins(ImmutableList.of(Cors.Origin.of(origin))) + .setMethods(ImmutableList.of(method)) + .setResponseHeaders(ImmutableList.of(responseHeader)) + .setMaxAgeSeconds(maxAgeSeconds) + .build(); - bucket.toBuilder().setCors(ImmutableList.of(cors)).build().update(); + bucket.toBuilder().setCors(ImmutableList.of(cors)).build().update(); - System.out.println( - "Bucket " - + bucketName - + " was updated with a CORS config to allow GET requests from " - + origin - + " sharing " - + responseHeader - + " responses across origins"); + System.out.println( + "Bucket " + + bucketName + + " was updated with a CORS config to allow GET requests from " + + origin + + " sharing " + + responseHeader + + " responses across origins"); + } } } // [END storage_cors_configuration] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucket.java b/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucket.java index 53041f62c5..691acc2279 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucket.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucket.java @@ -23,18 +23,20 @@ import com.google.cloud.storage.StorageOptions; public class CreateBucket { - public static void createBucket(String projectId, String bucketName) { + public static void createBucket(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID to give your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - Bucket bucket = storage.create(BucketInfo.newBuilder(bucketName).build()); + Bucket bucket = storage.create(BucketInfo.newBuilder(bucketName).build()); - System.out.println("Created bucket " + bucket.getName()); + System.out.println("Created bucket " + bucket.getName()); + } } } // [END storage_create_bucket] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketDualRegion.java b/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketDualRegion.java index 6c5be68d45..944d686b29 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketDualRegion.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketDualRegion.java @@ -28,11 +28,8 @@ public class CreateBucketDualRegion { public static void createBucketDualRegion( - String projectId, - String bucketName, - String location, - String firstRegion, - String secondRegion) { + String projectId, String bucketName, String location, String firstRegion, String secondRegion) + throws Exception { // The ID of your GCP project. // String projectId = "your-project-id"; @@ -51,30 +48,32 @@ public static void createBucketDualRegion( // See this documentation for other valid locations and regions: // https://cloud.google.com/storage/docs/locations - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - CustomPlacementConfig config = - CustomPlacementConfig.newBuilder() - .setDataLocations(Arrays.asList(firstRegion, secondRegion)) - .build(); + CustomPlacementConfig config = + CustomPlacementConfig.newBuilder() + .setDataLocations(Arrays.asList(firstRegion, secondRegion)) + .build(); - BucketInfo bucketInfo = - BucketInfo.newBuilder(bucketName) - .setLocation(location) - .setCustomPlacementConfig(config) - .build(); + BucketInfo bucketInfo = + BucketInfo.newBuilder(bucketName) + .setLocation(location) + .setCustomPlacementConfig(config) + .build(); - Bucket bucket = storage.create(bucketInfo); + Bucket bucket = storage.create(bucketInfo); - System.out.println( - "Created bucket " - + bucket.getName() - + " in location " - + bucket.getLocation() - + " with location type " - + bucket.getLocationType() - + " with Custom Placement Config " - + bucket.getCustomPlacementConfig().toString()); + System.out.println( + "Created bucket " + + bucket.getName() + + " in location " + + bucket.getLocation() + + " with location type " + + bucket.getLocationType() + + " with Custom Placement Config " + + bucket.getCustomPlacementConfig().toString()); + } } } // [END storage_create_bucket_dual_region] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketPubSubNotification.java b/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketPubSubNotification.java index da2b3b3d13..a082a1a317 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketPubSubNotification.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketPubSubNotification.java @@ -33,7 +33,8 @@ public static void createBucketPubSubNotification( Map customAttributes, EventType[] eventTypes, String objectNamePrefix, - PayloadFormat payloadFormat) { + PayloadFormat payloadFormat) + throws Exception { // The ID to give your GCS bucket // String bucketName = "your-unique-bucket-name"; @@ -49,17 +50,18 @@ public static void createBucketPubSubNotification( // Desired content of the Payload // PayloadFormat payloadFormat = PayloadFormat.JSON_API_V1.JSON_API_V1; - Storage storage = StorageOptions.newBuilder().build().getService(); - NotificationInfo notificationInfo = - NotificationInfo.newBuilder(topicName) - .setCustomAttributes(customAttributes) - .setEventTypes(eventTypes) - .setObjectNamePrefix(objectNamePrefix) - .setPayloadFormat(payloadFormat) - .build(); - Notification notification = storage.createNotification(bucketName, notificationInfo); - String topic = notification.getTopic(); - System.out.println("Successfully created notification for topic " + topic); + try (Storage storage = StorageOptions.newBuilder().build().getService()) { + NotificationInfo notificationInfo = + NotificationInfo.newBuilder(topicName) + .setCustomAttributes(customAttributes) + .setEventTypes(eventTypes) + .setObjectNamePrefix(objectNamePrefix) + .setPayloadFormat(payloadFormat) + .build(); + Notification notification = storage.createNotification(bucketName, notificationInfo); + String topic = notification.getTopic(); + System.out.println("Successfully created notification for topic " + topic); + } } } // [END storage_create_bucket_notifications] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketWithObjectRetention.java b/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketWithObjectRetention.java index 5854a6da2c..5c657faa3a 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketWithObjectRetention.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketWithObjectRetention.java @@ -24,24 +24,27 @@ import com.google.cloud.storage.StorageOptions; public class CreateBucketWithObjectRetention { - public static void createBucketWithObjectRetention(String projectId, String bucketName) { + public static void createBucketWithObjectRetention(String projectId, String bucketName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID to give your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - Bucket bucket = - storage.create( - BucketInfo.of(bucketName), Storage.BucketTargetOption.enableObjectRetention(true)); + Bucket bucket = + storage.create( + BucketInfo.of(bucketName), Storage.BucketTargetOption.enableObjectRetention(true)); - System.out.println( - "Created bucket " - + bucket.getName() - + " with object retention enabled setting: " - + bucket.getObjectRetention().getMode().toString()); + System.out.println( + "Created bucket " + + bucket.getName() + + " with object retention enabled setting: " + + bucket.getObjectRetention().getMode().toString()); + } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketWithStorageClassAndLocation.java b/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketWithStorageClassAndLocation.java index c1cb336b81..659f37fb9a 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketWithStorageClassAndLocation.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketWithStorageClassAndLocation.java @@ -24,37 +24,40 @@ import com.google.cloud.storage.StorageOptions; public class CreateBucketWithStorageClassAndLocation { - public static void createBucketWithStorageClassAndLocation(String projectId, String bucketName) { + public static void createBucketWithStorageClassAndLocation(String projectId, String bucketName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID to give your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - - // See the StorageClass documentation for other valid storage classes: - // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/storage/StorageClass.html - StorageClass storageClass = StorageClass.COLDLINE; - - // See this documentation for other valid locations: - // http://g.co/cloud/storage/docs/bucket-locations#location-mr - String location = "ASIA"; - - Bucket bucket = - storage.create( - BucketInfo.newBuilder(bucketName) - .setStorageClass(storageClass) - .setLocation(location) - .build()); - - System.out.println( - "Created bucket " - + bucket.getName() - + " in " - + bucket.getLocation() - + " with storage class " - + bucket.getStorageClass()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + + // See the StorageClass documentation for other valid storage classes: + // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/storage/StorageClass.html + StorageClass storageClass = StorageClass.COLDLINE; + + // See this documentation for other valid locations: + // http://g.co/cloud/storage/docs/bucket-locations#location-mr + String location = "ASIA"; + + Bucket bucket = + storage.create( + BucketInfo.newBuilder(bucketName) + .setStorageClass(storageClass) + .setLocation(location) + .build()); + + System.out.println( + "Created bucket " + + bucket.getName() + + " in " + + bucket.getLocation() + + " with storage class " + + bucket.getStorageClass()); + } } } // [END storage_create_bucket_class_location] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketWithTurboReplication.java b/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketWithTurboReplication.java index 7c67b64e3d..6cdcd9e3b4 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketWithTurboReplication.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/CreateBucketWithTurboReplication.java @@ -25,7 +25,7 @@ public class CreateBucketWithTurboReplication { public static void createBucketWithTurboReplication( - String projectId, String bucketName, String location) { + String projectId, String bucketName, String location) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -35,22 +35,24 @@ public static void createBucketWithTurboReplication( // The dual-region location to create your bucket in // String location = "NAM4" - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - - Bucket bucket = - storage.create( - BucketInfo.newBuilder(bucketName) - .setLocation(location) - .setRpo(Rpo.ASYNC_TURBO) - .build()); - - System.out.println( - "Created bucket " - + bucket.getName() - + " in " - + bucket.getLocation() - + " with RPO setting" - + bucket.getRpo()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + + Bucket bucket = + storage.create( + BucketInfo.newBuilder(bucketName) + .setLocation(location) + .setRpo(Rpo.ASYNC_TURBO) + .build()); + + System.out.println( + "Created bucket " + + bucket.getName() + + " in " + + bucket.getLocation() + + " with RPO setting" + + bucket.getRpo()); + } } } // [END storage_create_bucket_turbo_replication] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/DeleteBucket.java b/samples/snippets/src/main/java/com/example/storage/bucket/DeleteBucket.java index 925ca0d229..900ec3fed5 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/DeleteBucket.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/DeleteBucket.java @@ -22,18 +22,20 @@ import com.google.cloud.storage.StorageOptions; public class DeleteBucket { - public static void deleteBucket(String projectId, String bucketName) { + public static void deleteBucket(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of the bucket to delete // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - bucket.delete(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + bucket.delete(); - System.out.println("Bucket " + bucket.getName() + " was deleted"); + System.out.println("Bucket " + bucket.getName() + " was deleted"); + } } } // [END storage_delete_bucket] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/DeleteBucketPubSubNotification.java b/samples/snippets/src/main/java/com/example/storage/bucket/DeleteBucketPubSubNotification.java index dd59e2e189..53d333da5e 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/DeleteBucketPubSubNotification.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/DeleteBucketPubSubNotification.java @@ -22,19 +22,21 @@ public class DeleteBucketPubSubNotification { - public static void deleteBucketPubSubNotification(String bucketName, String notificationId) { + public static void deleteBucketPubSubNotification(String bucketName, String notificationId) + throws Exception { // The ID to give your GCS bucket // String bucketName = "your-unique-bucket-name"; // The NotificationId for the notification you would like to delete // String notificationId = "your-unique-notification-id" - Storage storage = StorageOptions.newBuilder().build().getService(); - boolean success = storage.deleteNotification(bucketName, notificationId); - if (success) { - System.out.println("Successfully deleted notification"); - } else { - System.out.println("Failed to find notification"); + try (Storage storage = StorageOptions.newBuilder().build().getService()) { + boolean success = storage.deleteNotification(bucketName, notificationId); + if (success) { + System.out.println("Successfully deleted notification"); + } else { + System.out.println("Failed to find notification"); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/DisableBucketVersioning.java b/samples/snippets/src/main/java/com/example/storage/bucket/DisableBucketVersioning.java index 49547c96a2..35a2e38471 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/DisableBucketVersioning.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/DisableBucketVersioning.java @@ -22,18 +22,20 @@ import com.google.cloud.storage.StorageOptions; public class DisableBucketVersioning { - public static void disableBucketVersioning(String projectId, String bucketName) { + public static void disableBucketVersioning(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - bucket.toBuilder().setVersioningEnabled(false).build().update(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + bucket.toBuilder().setVersioningEnabled(false).build().update(); - System.out.println("Versioning is now disabled for bucket " + bucketName); + System.out.println("Versioning is now disabled for bucket " + bucketName); + } } } // [END storage_disable_versioning] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/DisableDefaultEventBasedHold.java b/samples/snippets/src/main/java/com/example/storage/bucket/DisableDefaultEventBasedHold.java index a5529d60d8..e031797591 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/DisableDefaultEventBasedHold.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/DisableDefaultEventBasedHold.java @@ -21,26 +21,27 @@ import com.google.cloud.storage.Bucket; import com.google.cloud.storage.Storage; import com.google.cloud.storage.Storage.BucketTargetOption; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class DisableDefaultEventBasedHold { public static void disableDefaultEventBasedHold(String projectId, String bucketName) - throws StorageException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - // first look up the bucket, so we will have its metageneration - Bucket bucket = storage.get(bucketName); - storage.update( - bucket.toBuilder().setDefaultEventBasedHold(false).build(), - BucketTargetOption.metagenerationMatch()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + // first look up the bucket, so we will have its metageneration + Bucket bucket = storage.get(bucketName); + storage.update( + bucket.toBuilder().setDefaultEventBasedHold(false).build(), + BucketTargetOption.metagenerationMatch()); - System.out.println("Default event-based hold was disabled for " + bucketName); + System.out.println("Default event-based hold was disabled for " + bucketName); + } } } // [END storage_disable_default_event_based_hold] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/DisableLifecycleManagement.java b/samples/snippets/src/main/java/com/example/storage/bucket/DisableLifecycleManagement.java index 6463358ed1..74a826da90 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/DisableLifecycleManagement.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/DisableLifecycleManagement.java @@ -23,21 +23,24 @@ import com.google.cloud.storage.StorageOptions; public class DisableLifecycleManagement { - public static void disableLifecycleManagement(String projectId, String bucketName) { + public static void disableLifecycleManagement(String projectId, String bucketName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - // first look up the bucket, so we will have its metageneration - Bucket bucket = storage.get(bucketName); - storage.update( - bucket.toBuilder().deleteLifecycleRules().build(), - BucketTargetOption.metagenerationMatch()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + // first look up the bucket, so we will have its metageneration + Bucket bucket = storage.get(bucketName); + storage.update( + bucket.toBuilder().deleteLifecycleRules().build(), + BucketTargetOption.metagenerationMatch()); - System.out.println("Lifecycle management was disabled for bucket " + bucketName); + System.out.println("Lifecycle management was disabled for bucket " + bucketName); + } } } // [END storage_disable_bucket_lifecycle_management] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/DisableRequesterPays.java b/samples/snippets/src/main/java/com/example/storage/bucket/DisableRequesterPays.java index aaa9694c9a..a02edb2f75 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/DisableRequesterPays.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/DisableRequesterPays.java @@ -22,21 +22,23 @@ import com.google.cloud.storage.StorageOptions; public class DisableRequesterPays { - public static void disableRequesterPays(String projectId, String bucketName) { + public static void disableRequesterPays(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName, Storage.BucketGetOption.userProject(projectId)); - bucket.toBuilder() - .setRequesterPays(false) - .build() - .update(Storage.BucketTargetOption.userProject(projectId)); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName, Storage.BucketGetOption.userProject(projectId)); + bucket.toBuilder() + .setRequesterPays(false) + .build() + .update(Storage.BucketTargetOption.userProject(projectId)); - System.out.println("Requester pays disabled for bucket " + bucketName); + System.out.println("Requester pays disabled for bucket " + bucketName); + } } } // [END storage_disable_requester_pays] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/DisableSoftDelete.java b/samples/snippets/src/main/java/com/example/storage/bucket/DisableSoftDelete.java index 97d6571469..39d1de5703 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/DisableSoftDelete.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/DisableSoftDelete.java @@ -24,25 +24,27 @@ import java.time.Duration; public class DisableSoftDelete { - public static void disableSoftDelete(String projectId, String bucketName) { + public static void disableSoftDelete(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - bucket.toBuilder() - .setSoftDeletePolicy( - // Setting the retention duration to 0 disables Soft Delete. - BucketInfo.SoftDeletePolicy.newBuilder() - .setRetentionDuration(Duration.ofSeconds(0)) - .build()) - .build() - .update(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + bucket.toBuilder() + .setSoftDeletePolicy( + // Setting the retention duration to 0 disables Soft Delete. + BucketInfo.SoftDeletePolicy.newBuilder() + .setRetentionDuration(Duration.ofSeconds(0)) + .build()) + .build() + .update(); - System.out.println("Soft delete for " + bucketName + " was disabled"); + System.out.println("Soft delete for " + bucketName + " was disabled"); + } } } // [END storage_disable_soft_delete] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/DisableUniformBucketLevelAccess.java b/samples/snippets/src/main/java/com/example/storage/bucket/DisableUniformBucketLevelAccess.java index dc77bc99f5..6a8a3df8f7 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/DisableUniformBucketLevelAccess.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/DisableUniformBucketLevelAccess.java @@ -22,33 +22,34 @@ import com.google.cloud.storage.BucketInfo; import com.google.cloud.storage.Storage; import com.google.cloud.storage.Storage.BucketTargetOption; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class DisableUniformBucketLevelAccess { public static void disableUniformBucketLevelAccess(String projectId, String bucketName) - throws StorageException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - // first look up the bucket, so we will have its metageneration - Bucket bucket = storage.get(bucketName); + // first look up the bucket, so we will have its metageneration + Bucket bucket = storage.get(bucketName); - BucketInfo.IamConfiguration iamConfiguration = - BucketInfo.IamConfiguration.newBuilder() - .setIsUniformBucketLevelAccessEnabled(false) - .build(); + BucketInfo.IamConfiguration iamConfiguration = + BucketInfo.IamConfiguration.newBuilder() + .setIsUniformBucketLevelAccessEnabled(false) + .build(); - storage.update( - bucket.toBuilder().setIamConfiguration(iamConfiguration).build(), - BucketTargetOption.metagenerationMatch()); + storage.update( + bucket.toBuilder().setIamConfiguration(iamConfiguration).build(), + BucketTargetOption.metagenerationMatch()); - System.out.println("Uniform bucket-level access was disabled for " + bucketName); + System.out.println("Uniform bucket-level access was disabled for " + bucketName); + } } } // [END storage_disable_uniform_bucket_level_access] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/EnableBucketVersioning.java b/samples/snippets/src/main/java/com/example/storage/bucket/EnableBucketVersioning.java index 8685bf9278..0951bb0c4d 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/EnableBucketVersioning.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/EnableBucketVersioning.java @@ -22,18 +22,20 @@ import com.google.cloud.storage.StorageOptions; public class EnableBucketVersioning { - public static void enableBucketVersioning(String projectId, String bucketName) { + public static void enableBucketVersioning(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - bucket.toBuilder().setVersioningEnabled(true).build().update(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + bucket.toBuilder().setVersioningEnabled(true).build().update(); - System.out.println("Versioning is now enabled for bucket " + bucketName); + System.out.println("Versioning is now enabled for bucket " + bucketName); + } } } // [END storage_enable_versioning] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/EnableDefaultEventBasedHold.java b/samples/snippets/src/main/java/com/example/storage/bucket/EnableDefaultEventBasedHold.java index 0ae5ba8a68..76a5697bc2 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/EnableDefaultEventBasedHold.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/EnableDefaultEventBasedHold.java @@ -21,26 +21,27 @@ import com.google.cloud.storage.Bucket; import com.google.cloud.storage.Storage; import com.google.cloud.storage.Storage.BucketTargetOption; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class EnableDefaultEventBasedHold { public static void enableDefaultEventBasedHold(String projectId, String bucketName) - throws StorageException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - // first look up the bucket, so we will have its metageneration - Bucket bucket = storage.get(bucketName); - storage.update( - bucket.toBuilder().setDefaultEventBasedHold(true).build(), - BucketTargetOption.metagenerationMatch()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + // first look up the bucket, so we will have its metageneration + Bucket bucket = storage.get(bucketName); + storage.update( + bucket.toBuilder().setDefaultEventBasedHold(true).build(), + BucketTargetOption.metagenerationMatch()); - System.out.println("Default event-based hold was enabled for " + bucketName); + System.out.println("Default event-based hold was enabled for " + bucketName); + } } } // [END storage_enable_default_event_based_hold] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/EnableLifecycleManagement.java b/samples/snippets/src/main/java/com/example/storage/bucket/EnableLifecycleManagement.java index bf2767321e..12d7debcdf 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/EnableLifecycleManagement.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/EnableLifecycleManagement.java @@ -27,29 +27,33 @@ import com.google.common.collect.ImmutableList; public class EnableLifecycleManagement { - public static void enableLifecycleManagement(String projectId, String bucketName) { + public static void enableLifecycleManagement(String projectId, String bucketName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - - // See the LifecycleRule documentation for additional info on what you can do with lifecycle - // management rules. This one deletes objects that are over 100 days old. - // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/storage/BucketInfo.LifecycleRule.html - bucket.toBuilder() - .setLifecycleRules( - ImmutableList.of( - new LifecycleRule( - LifecycleAction.newDeleteAction(), - LifecycleCondition.newBuilder().setAge(100).build()))) - .build() - .update(); - - System.out.println("Lifecycle management was enabled and configured for bucket " + bucketName); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + + // See the LifecycleRule documentation for additional info on what you can do with lifecycle + // management rules. This one deletes objects that are over 100 days old. + // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/storage/BucketInfo.LifecycleRule.html + bucket.toBuilder() + .setLifecycleRules( + ImmutableList.of( + new LifecycleRule( + LifecycleAction.newDeleteAction(), + LifecycleCondition.newBuilder().setAge(100).build()))) + .build() + .update(); + + System.out.println( + "Lifecycle management was enabled and configured for bucket " + bucketName); + } } } // [END storage_enable_bucket_lifecycle_management] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/EnableRequesterPays.java b/samples/snippets/src/main/java/com/example/storage/bucket/EnableRequesterPays.java index 089cb2e549..08659c80a7 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/EnableRequesterPays.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/EnableRequesterPays.java @@ -22,18 +22,20 @@ import com.google.cloud.storage.StorageOptions; public class EnableRequesterPays { - public static void enableRequesterPays(String projectId, String bucketName) { + public static void enableRequesterPays(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - bucket.toBuilder().setRequesterPays(true).build().update(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + bucket.toBuilder().setRequesterPays(true).build().update(); - System.out.println("Requester pays enabled for bucket " + bucketName); + System.out.println("Requester pays enabled for bucket " + bucketName); + } } } // [END storage_enable_requester_pays] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/EnableUniformBucketLevelAccess.java b/samples/snippets/src/main/java/com/example/storage/bucket/EnableUniformBucketLevelAccess.java index a8ae606bd0..3c53167abd 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/EnableUniformBucketLevelAccess.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/EnableUniformBucketLevelAccess.java @@ -22,35 +22,38 @@ import com.google.cloud.storage.BucketInfo; import com.google.cloud.storage.Storage; import com.google.cloud.storage.Storage.BucketTargetOption; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class EnableUniformBucketLevelAccess { public static void enableUniformBucketLevelAccess(String projectId, String bucketName) - throws StorageException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - // first look up the bucket, so we will have its metageneration - Bucket bucket = storage.get(bucketName); + // first look up the bucket, so we will have its metageneration + Bucket bucket = storage.get(bucketName); - BucketInfo.IamConfiguration iamConfiguration = - BucketInfo.IamConfiguration.newBuilder().setIsUniformBucketLevelAccessEnabled(true).build(); + BucketInfo.IamConfiguration iamConfiguration = + BucketInfo.IamConfiguration.newBuilder() + .setIsUniformBucketLevelAccessEnabled(true) + .build(); - storage.update( - bucket.toBuilder() - .setIamConfiguration(iamConfiguration) - .setAcl(null) - .setDefaultAcl(null) - .build(), - BucketTargetOption.metagenerationMatch()); + storage.update( + bucket.toBuilder() + .setIamConfiguration(iamConfiguration) + .setAcl(null) + .setDefaultAcl(null) + .build(), + BucketTargetOption.metagenerationMatch()); - System.out.println("Uniform bucket-level access was enabled for " + bucketName); + System.out.println("Uniform bucket-level access was enabled for " + bucketName); + } } } // [END storage_enable_uniform_bucket_level_access] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/GetBucketAutoclass.java b/samples/snippets/src/main/java/com/example/storage/bucket/GetBucketAutoclass.java index 77430b03d1..496ca988d6 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/GetBucketAutoclass.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/GetBucketAutoclass.java @@ -25,31 +25,33 @@ import java.time.OffsetDateTime; public class GetBucketAutoclass { - public static void getBucketAutoclass(String projectId, String bucketName) { + public static void getBucketAutoclass(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Autoclass autoclass = storage.get(bucketName).getAutoclass(); - String status = autoclass.getEnabled() ? "enabled" : "disabled"; - String toggleTime = autoclass.getToggleTime().toString(); - StorageClass terminalStorageClass = autoclass.getTerminalStorageClass(); - OffsetDateTime terminalStorageClassUpdateTime = autoclass.getTerminalStorageClassUpdateTime(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Autoclass autoclass = storage.get(bucketName).getAutoclass(); + String status = autoclass.getEnabled() ? "enabled" : "disabled"; + String toggleTime = autoclass.getToggleTime().toString(); + StorageClass terminalStorageClass = autoclass.getTerminalStorageClass(); + OffsetDateTime terminalStorageClassUpdateTime = autoclass.getTerminalStorageClassUpdateTime(); - System.out.println( - "Autoclass is currently " - + status - + " for bucket " - + bucketName - + " and was last changed at " - + toggleTime - + ". The terminal storage class is set to be " - + terminalStorageClass.name() - + " last updated at " - + terminalStorageClassUpdateTime.toString()); + System.out.println( + "Autoclass is currently " + + status + + " for bucket " + + bucketName + + " and was last changed at " + + toggleTime + + ". The terminal storage class is set to be " + + terminalStorageClass.name() + + " last updated at " + + terminalStorageClassUpdateTime.toString()); + } } } // [END storage_get_autoclass] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/GetBucketMetadata.java b/samples/snippets/src/main/java/com/example/storage/bucket/GetBucketMetadata.java index 742120f85d..341dbfad27 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/GetBucketMetadata.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/GetBucketMetadata.java @@ -25,48 +25,50 @@ import java.util.Map; public class GetBucketMetadata { - public static void getBucketMetadata(String projectId, String bucketName) { + public static void getBucketMetadata(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - // Select all fields. Fields can be selected individually e.g. Storage.BucketField.NAME - Bucket bucket = - storage.get(bucketName, Storage.BucketGetOption.fields(Storage.BucketField.values())); + // Select all fields. Fields can be selected individually e.g. Storage.BucketField.NAME + Bucket bucket = + storage.get(bucketName, Storage.BucketGetOption.fields(Storage.BucketField.values())); - // Print bucket metadata - System.out.println("BucketName: " + bucket.getName()); - System.out.println("DefaultEventBasedHold: " + bucket.getDefaultEventBasedHold()); - System.out.println("DefaultKmsKeyName: " + bucket.getDefaultKmsKeyName()); - System.out.println("Id: " + bucket.getGeneratedId()); - System.out.println("IndexPage: " + bucket.getIndexPage()); - System.out.println("Location: " + bucket.getLocation()); - System.out.println("LocationType: " + bucket.getLocationType()); - System.out.println("Metageneration: " + bucket.getMetageneration()); - System.out.println("NotFoundPage: " + bucket.getNotFoundPage()); - System.out.println("RetentionEffectiveTime: " + bucket.getRetentionEffectiveTime()); - System.out.println("RetentionPeriod: " + bucket.getRetentionPeriod()); - System.out.println("RetentionPolicyIsLocked: " + bucket.retentionPolicyIsLocked()); - System.out.println("RequesterPays: " + bucket.requesterPays()); - System.out.println("SelfLink: " + bucket.getSelfLink()); - System.out.println("StorageClass: " + bucket.getStorageClass().name()); - System.out.println("TimeCreated: " + bucket.getCreateTime()); - System.out.println("VersioningEnabled: " + bucket.versioningEnabled()); - System.out.println("ObjectRetention: " + bucket.getObjectRetention()); - if (bucket.getLabels() != null) { - System.out.println("\n\n\nLabels:"); - for (Map.Entry label : bucket.getLabels().entrySet()) { - System.out.println(label.getKey() + "=" + label.getValue()); + // Print bucket metadata + System.out.println("BucketName: " + bucket.getName()); + System.out.println("DefaultEventBasedHold: " + bucket.getDefaultEventBasedHold()); + System.out.println("DefaultKmsKeyName: " + bucket.getDefaultKmsKeyName()); + System.out.println("Id: " + bucket.getGeneratedId()); + System.out.println("IndexPage: " + bucket.getIndexPage()); + System.out.println("Location: " + bucket.getLocation()); + System.out.println("LocationType: " + bucket.getLocationType()); + System.out.println("Metageneration: " + bucket.getMetageneration()); + System.out.println("NotFoundPage: " + bucket.getNotFoundPage()); + System.out.println("RetentionEffectiveTime: " + bucket.getRetentionEffectiveTime()); + System.out.println("RetentionPeriod: " + bucket.getRetentionPeriod()); + System.out.println("RetentionPolicyIsLocked: " + bucket.retentionPolicyIsLocked()); + System.out.println("RequesterPays: " + bucket.requesterPays()); + System.out.println("SelfLink: " + bucket.getSelfLink()); + System.out.println("StorageClass: " + bucket.getStorageClass().name()); + System.out.println("TimeCreated: " + bucket.getCreateTime()); + System.out.println("VersioningEnabled: " + bucket.versioningEnabled()); + System.out.println("ObjectRetention: " + bucket.getObjectRetention()); + if (bucket.getLabels() != null) { + System.out.println("\n\n\nLabels:"); + for (Map.Entry label : bucket.getLabels().entrySet()) { + System.out.println(label.getKey() + "=" + label.getValue()); + } } - } - if (bucket.getLifecycleRules() != null) { - System.out.println("\n\n\nLifecycle Rules:"); - for (BucketInfo.LifecycleRule rule : bucket.getLifecycleRules()) { - System.out.println(rule); + if (bucket.getLifecycleRules() != null) { + System.out.println("\n\n\nLifecycle Rules:"); + for (BucketInfo.LifecycleRule rule : bucket.getLifecycleRules()) { + System.out.println(rule); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/GetBucketRpo.java b/samples/snippets/src/main/java/com/example/storage/bucket/GetBucketRpo.java index a0bc61681d..f04ce49582 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/GetBucketRpo.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/GetBucketRpo.java @@ -22,18 +22,20 @@ import com.google.cloud.storage.StorageOptions; public class GetBucketRpo { - public static void getBucketRpo(String projectId, String bucketName) { + public static void getBucketRpo(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - String rpo = bucket.getRpo().toString(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + String rpo = bucket.getRpo().toString(); - System.out.println("The RPO setting of bucket " + bucketName + " is " + rpo); + System.out.println("The RPO setting of bucket " + bucketName + " is " + rpo); + } } } // [END storage_get_rpo] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/GetDefaultEventBasedHold.java b/samples/snippets/src/main/java/com/example/storage/bucket/GetDefaultEventBasedHold.java index 7bf9933843..bef3984045 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/GetDefaultEventBasedHold.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/GetDefaultEventBasedHold.java @@ -20,28 +20,29 @@ import com.google.cloud.storage.Bucket; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class GetDefaultEventBasedHold { public static void getDefaultEventBasedHold(String projectId, String bucketName) - throws StorageException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = - storage.get( - bucketName, - Storage.BucketGetOption.fields(Storage.BucketField.DEFAULT_EVENT_BASED_HOLD)); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = + storage.get( + bucketName, + Storage.BucketGetOption.fields(Storage.BucketField.DEFAULT_EVENT_BASED_HOLD)); - if (bucket.getDefaultEventBasedHold() != null && bucket.getDefaultEventBasedHold()) { - System.out.println("Default event-based hold is enabled for " + bucketName); - } else { - System.out.println("Default event-based hold is not enabled for " + bucketName); + if (bucket.getDefaultEventBasedHold() != null && bucket.getDefaultEventBasedHold()) { + System.out.println("Default event-based hold is enabled for " + bucketName); + } else { + System.out.println("Default event-based hold is not enabled for " + bucketName); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/GetPublicAccessPrevention.java b/samples/snippets/src/main/java/com/example/storage/bucket/GetPublicAccessPrevention.java index 204faf0f46..047eeba7b0 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/GetPublicAccessPrevention.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/GetPublicAccessPrevention.java @@ -23,26 +23,29 @@ import com.google.cloud.storage.StorageOptions; public class GetPublicAccessPrevention { - public static void getPublicAccessPrevention(String projectId, String bucketName) { + public static void getPublicAccessPrevention(String projectId, String bucketName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); - // Gets Bucket Metadata and prints publicAccessPrevention value (either 'inherited' or - // 'enforced'). - BucketInfo.PublicAccessPrevention publicAccessPrevention = - bucket.getIamConfiguration().getPublicAccessPrevention(); + // Gets Bucket Metadata and prints publicAccessPrevention value (either 'inherited' or + // 'enforced'). + BucketInfo.PublicAccessPrevention publicAccessPrevention = + bucket.getIamConfiguration().getPublicAccessPrevention(); - System.out.println( - "Public access prevention is set to " - + publicAccessPrevention.getValue() - + " for " - + bucketName); + System.out.println( + "Public access prevention is set to " + + publicAccessPrevention.getValue() + + " for " + + bucketName); + } } } // [END storage_get_public_access_prevention] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/GetRequesterPaysStatus.java b/samples/snippets/src/main/java/com/example/storage/bucket/GetRequesterPaysStatus.java index 5665cf9106..88af7852a8 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/GetRequesterPaysStatus.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/GetRequesterPaysStatus.java @@ -20,23 +20,23 @@ import com.google.cloud.storage.Bucket; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class GetRequesterPaysStatus { - public static void getRequesterPaysStatus(String projectId, String bucketName) - throws StorageException { + public static void getRequesterPaysStatus(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = - storage.get(bucketName, Storage.BucketGetOption.fields(Storage.BucketField.BILLING)); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = + storage.get(bucketName, Storage.BucketGetOption.fields(Storage.BucketField.BILLING)); - System.out.println("Requester pays status : " + bucket.requesterPays()); + System.out.println("Requester pays status : " + bucket.requesterPays()); + } } } // [END storage_get_requester_pays_status] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/GetRetentionPolicy.java b/samples/snippets/src/main/java/com/example/storage/bucket/GetRetentionPolicy.java index 09938efd08..3893ad1892 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/GetRetentionPolicy.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/GetRetentionPolicy.java @@ -20,31 +20,31 @@ import com.google.cloud.storage.Bucket; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import java.util.Date; public class GetRetentionPolicy { - public static void getRetentionPolicy(String projectId, String bucketName) - throws StorageException { + public static void getRetentionPolicy(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = - storage.get( - bucketName, Storage.BucketGetOption.fields(Storage.BucketField.RETENTION_POLICY)); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = + storage.get( + bucketName, Storage.BucketGetOption.fields(Storage.BucketField.RETENTION_POLICY)); - System.out.println("Retention Policy for " + bucketName); - System.out.println("Retention Period: " + bucket.getRetentionPeriod()); - if (bucket.retentionPolicyIsLocked() != null && bucket.retentionPolicyIsLocked()) { - System.out.println("Retention Policy is locked"); - } - if (bucket.getRetentionEffectiveTime() != null) { - System.out.println("Effective Time: " + new Date(bucket.getRetentionEffectiveTime())); + System.out.println("Retention Policy for " + bucketName); + System.out.println("Retention Period: " + bucket.getRetentionPeriod()); + if (bucket.retentionPolicyIsLocked() != null && bucket.retentionPolicyIsLocked()) { + System.out.println("Retention Policy is locked"); + } + if (bucket.getRetentionEffectiveTime() != null) { + System.out.println("Effective Time: " + new Date(bucket.getRetentionEffectiveTime())); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/GetSoftDeletePolicy.java b/samples/snippets/src/main/java/com/example/storage/bucket/GetSoftDeletePolicy.java index 32f4277a05..a0152d6f50 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/GetSoftDeletePolicy.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/GetSoftDeletePolicy.java @@ -23,21 +23,23 @@ import java.time.Duration; public class GetSoftDeletePolicy { - public static void getSoftDeletePolicy(String projectId, String bucketName) { + public static void getSoftDeletePolicy(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - SoftDeletePolicy policy = storage.get(bucketName).getSoftDeletePolicy(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + SoftDeletePolicy policy = storage.get(bucketName).getSoftDeletePolicy(); - if (Duration.ofSeconds(0).equals(policy.getRetentionDuration())) { - System.out.println("Soft delete is disabled for " + bucketName); - } else { - System.out.println("The soft delete policy for " + bucketName + " is:"); - System.out.println(policy); + if (Duration.ofSeconds(0).equals(policy.getRetentionDuration())) { + System.out.println("Soft delete is disabled for " + bucketName); + } else { + System.out.println("The soft delete policy for " + bucketName + " is:"); + System.out.println(policy); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/GetUniformBucketLevelAccess.java b/samples/snippets/src/main/java/com/example/storage/bucket/GetUniformBucketLevelAccess.java index 4e596887d9..aa3b11b187 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/GetUniformBucketLevelAccess.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/GetUniformBucketLevelAccess.java @@ -21,33 +21,34 @@ import com.google.cloud.storage.Bucket; import com.google.cloud.storage.BucketInfo; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import java.util.Date; public class GetUniformBucketLevelAccess { public static void getUniformBucketLevelAccess(String projectId, String bucketName) - throws StorageException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = - storage.get( - bucketName, Storage.BucketGetOption.fields(Storage.BucketField.IAMCONFIGURATION)); - BucketInfo.IamConfiguration iamConfiguration = bucket.getIamConfiguration(); - - Boolean enabled = iamConfiguration.isUniformBucketLevelAccessEnabled(); - Date lockedTime = new Date(iamConfiguration.getUniformBucketLevelAccessLockedTime()); - - if (enabled != null && enabled) { - System.out.println("Uniform bucket-level access is enabled for " + bucketName); - System.out.println("Bucket will be locked on " + lockedTime); - } else { - System.out.println("Uniform bucket-level access is disabled for " + bucketName); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = + storage.get( + bucketName, Storage.BucketGetOption.fields(Storage.BucketField.IAMCONFIGURATION)); + BucketInfo.IamConfiguration iamConfiguration = bucket.getIamConfiguration(); + + Boolean enabled = iamConfiguration.isUniformBucketLevelAccessEnabled(); + Date lockedTime = new Date(iamConfiguration.getUniformBucketLevelAccessLockedTime()); + + if (enabled != null && enabled) { + System.out.println("Uniform bucket-level access is enabled for " + bucketName); + System.out.println("Bucket will be locked on " + lockedTime); + } else { + System.out.println("Uniform bucket-level access is disabled for " + bucketName); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/ListBucketIamMembers.java b/samples/snippets/src/main/java/com/example/storage/bucket/ListBucketIamMembers.java index 4bbf3704b2..c5e236e1b3 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/ListBucketIamMembers.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/ListBucketIamMembers.java @@ -23,7 +23,7 @@ import com.google.cloud.storage.StorageOptions; public class ListBucketIamMembers { - public static void listBucketIamMembers(String projectId, String bucketName) { + public static void listBucketIamMembers(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -32,21 +32,23 @@ public static void listBucketIamMembers(String projectId, String bucketName) { // For more information please read: // https://cloud.google.com/storage/docs/access-control/iam - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - - Policy policy = - storage.getIamPolicy(bucketName, Storage.BucketSourceOption.requestedPolicyVersion(3)); - - // Print binding information - for (Binding binding : policy.getBindingsList()) { - System.out.printf("Role: %s Members: %s\n", binding.getRole(), binding.getMembers()); - - // Print condition if one is set - boolean bindingIsConditional = binding.getCondition() != null; - if (bindingIsConditional) { - System.out.printf("Condition Title: %s\n", binding.getCondition().getTitle()); - System.out.printf("Condition Description: %s\n", binding.getCondition().getDescription()); - System.out.printf("Condition Expression: %s\n", binding.getCondition().getExpression()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + + Policy policy = + storage.getIamPolicy(bucketName, Storage.BucketSourceOption.requestedPolicyVersion(3)); + + // Print binding information + for (Binding binding : policy.getBindingsList()) { + System.out.printf("Role: %s Members: %s\n", binding.getRole(), binding.getMembers()); + + // Print condition if one is set + boolean bindingIsConditional = binding.getCondition() != null; + if (bindingIsConditional) { + System.out.printf("Condition Title: %s\n", binding.getCondition().getTitle()); + System.out.printf("Condition Description: %s\n", binding.getCondition().getDescription()); + System.out.printf("Condition Expression: %s\n", binding.getCondition().getExpression()); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/ListBuckets.java b/samples/snippets/src/main/java/com/example/storage/bucket/ListBuckets.java index cd6237cb14..21ec0c2d1f 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/ListBuckets.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/ListBuckets.java @@ -23,15 +23,17 @@ import com.google.cloud.storage.StorageOptions; public class ListBuckets { - public static void listBuckets(String projectId) { + public static void listBuckets(String projectId) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Page buckets = storage.list(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Page buckets = storage.list(); - for (Bucket bucket : buckets.iterateAll()) { - System.out.println(bucket.getName()); + for (Bucket bucket : buckets.iterateAll()) { + System.out.println(bucket.getName()); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/ListPubSubNotifications.java b/samples/snippets/src/main/java/com/example/storage/bucket/ListPubSubNotifications.java index b3fb614f8b..2578cd4519 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/ListPubSubNotifications.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/ListPubSubNotifications.java @@ -24,15 +24,16 @@ public class ListPubSubNotifications { - public static void listPubSubNotifications(String bucketName) { + public static void listPubSubNotifications(String bucketName) throws Exception { // The ID to give your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().build().getService(); - List notificationList = storage.listNotifications(bucketName); - for (Notification notification : notificationList) { - System.out.println( - "Found notification " + notification.getTopic() + " for bucket " + bucketName); + try (Storage storage = StorageOptions.newBuilder().build().getService()) { + List notificationList = storage.listNotifications(bucketName); + for (Notification notification : notificationList) { + System.out.println( + "Found notification " + notification.getTopic() + " for bucket " + bucketName); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/LockRetentionPolicy.java b/samples/snippets/src/main/java/com/example/storage/bucket/LockRetentionPolicy.java index fd339f4e3a..0a72b8ae92 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/LockRetentionPolicy.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/LockRetentionPolicy.java @@ -20,28 +20,29 @@ import com.google.cloud.storage.Bucket; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import java.util.Date; public class LockRetentionPolicy { - public static void lockRetentionPolicy(String projectId, String bucketName) - throws StorageException { + public static void lockRetentionPolicy(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = - storage.get(bucketName, Storage.BucketGetOption.fields(Storage.BucketField.METAGENERATION)); - Bucket lockedBucket = - bucket.lockRetentionPolicy(Storage.BucketTargetOption.metagenerationMatch()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = + storage.get( + bucketName, Storage.BucketGetOption.fields(Storage.BucketField.METAGENERATION)); + Bucket lockedBucket = + bucket.lockRetentionPolicy(Storage.BucketTargetOption.metagenerationMatch()); - System.out.println("Retention period for " + bucketName + " is now locked"); - System.out.println( - "Retention policy effective as of " + new Date(lockedBucket.getRetentionEffectiveTime())); + System.out.println("Retention period for " + bucketName + " is now locked"); + System.out.println( + "Retention policy effective as of " + new Date(lockedBucket.getRetentionEffectiveTime())); + } } } // [END storage_lock_retention_policy] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/MakeBucketPublic.java b/samples/snippets/src/main/java/com/example/storage/bucket/MakeBucketPublic.java index 09e9b32074..58c6b9eefd 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/MakeBucketPublic.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/MakeBucketPublic.java @@ -24,22 +24,24 @@ import com.google.cloud.storage.StorageRoles; public class MakeBucketPublic { - public static void makeBucketPublic(String projectId, String bucketName) { + public static void makeBucketPublic(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Policy originalPolicy = storage.getIamPolicy(bucketName); - storage.setIamPolicy( - bucketName, - originalPolicy.toBuilder() - .addIdentity(StorageRoles.objectViewer(), Identity.allUsers()) // All users can view - .build()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Policy originalPolicy = storage.getIamPolicy(bucketName); + storage.setIamPolicy( + bucketName, + originalPolicy.toBuilder() + .addIdentity(StorageRoles.objectViewer(), Identity.allUsers()) // All users can view + .build()); - System.out.println("Bucket " + bucketName + " is now publicly readable"); + System.out.println("Bucket " + bucketName + " is now publicly readable"); + } } } // [END storage_set_bucket_public_iam] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/PrintBucketAcl.java b/samples/snippets/src/main/java/com/example/storage/bucket/PrintBucketAcl.java index 57974f7a5f..a49ccd4246 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/PrintBucketAcl.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/PrintBucketAcl.java @@ -26,25 +26,27 @@ public class PrintBucketAcl { - public static void printBucketAcl(String projectId, String bucketName) { + public static void printBucketAcl(String projectId, String bucketName) throws Exception { // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - List bucketAcls = bucket.getAcl(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + List bucketAcls = bucket.getAcl(); - for (Acl acl : bucketAcls) { + for (Acl acl : bucketAcls) { - // This will give you the role. - // See https://cloud.google.com/storage/docs/access-control/lists#permissions - String role = acl.getRole().name(); + // This will give you the role. + // See https://cloud.google.com/storage/docs/access-control/lists#permissions + String role = acl.getRole().name(); - // This will give you the Entity type (i.e. User, Group, Project etc.) - // See https://cloud.google.com/storage/docs/access-control/lists#scopes - String entityType = acl.getEntity().getType().name(); + // This will give you the Entity type (i.e. User, Group, Project etc.) + // See https://cloud.google.com/storage/docs/access-control/lists#scopes + String entityType = acl.getEntity().getType().name(); - System.out.printf("%s: %s \n", role, entityType); + System.out.printf("%s: %s \n", role, entityType); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/PrintBucketAclFilterByUser.java b/samples/snippets/src/main/java/com/example/storage/bucket/PrintBucketAclFilterByUser.java index 68690299e5..fb17c8d943 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/PrintBucketAclFilterByUser.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/PrintBucketAclFilterByUser.java @@ -26,7 +26,8 @@ public class PrintBucketAclFilterByUser { - public static void printBucketAclFilterByUser(String bucketName, String userEmail) { + public static void printBucketAclFilterByUser(String bucketName, String userEmail) + throws Exception { // The ID to give your GCS bucket // String bucketName = "your-unique-bucket-name"; @@ -34,12 +35,13 @@ public static void printBucketAclFilterByUser(String bucketName, String userEmai // The email of the user whose acl is being retrieved. // String userEmail = "someuser@domain.com" - Storage storage = StorageOptions.newBuilder().build().getService(); - Bucket bucket = storage.get(bucketName); + try (Storage storage = StorageOptions.newBuilder().build().getService()) { + Bucket bucket = storage.get(bucketName); - Acl userAcl = bucket.getAcl(new User(userEmail)); - String userRole = userAcl.getRole().name(); - System.out.println("User " + userEmail + " has role " + userRole); + Acl userAcl = bucket.getAcl(new User(userEmail)); + String userRole = userAcl.getRole().name(); + System.out.println("User " + userEmail + " has role " + userRole); + } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/PrintPubSubNotification.java b/samples/snippets/src/main/java/com/example/storage/bucket/PrintPubSubNotification.java index 083a0b551a..7d6af4f6bd 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/PrintPubSubNotification.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/PrintPubSubNotification.java @@ -23,17 +23,19 @@ public class PrintPubSubNotification { - public static void printPubSubNotification(String bucketName, String notificationId) { + public static void printPubSubNotification(String bucketName, String notificationId) + throws Exception { // The ID to give your GCS bucket // String bucketName = "your-unique-bucket-name"; // The Pub/Sub topic you would like to find // String notificationId = "your-unique-notification-id" - Storage storage = StorageOptions.newBuilder().build().getService(); - Notification notification = storage.getNotification(bucketName, notificationId); - System.out.println( - "Found notification " + notification.getTopic() + " for bucket " + bucketName); + try (Storage storage = StorageOptions.newBuilder().build().getService()) { + Notification notification = storage.getNotification(bucketName, notificationId); + System.out.println( + "Found notification " + notification.getTopic() + " for bucket " + bucketName); + } } } // [END storage_print_pubsub_bucket_notification] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketCors.java b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketCors.java index 220a24cb4e..85cd0ffa33 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketCors.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketCors.java @@ -26,26 +26,28 @@ import java.util.List; public class RemoveBucketCors { - public static void removeBucketCors(String projectId, String bucketName) { + public static void removeBucketCors(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = - storage.get(bucketName, Storage.BucketGetOption.fields(Storage.BucketField.CORS)); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = + storage.get(bucketName, Storage.BucketGetOption.fields(Storage.BucketField.CORS)); - // getCors() returns the List and copying over to an ArrayList so it's mutable. - List cors = new ArrayList<>(bucket.getCors()); + // getCors() returns the List and copying over to an ArrayList so it's mutable. + List cors = new ArrayList<>(bucket.getCors()); - // Clear bucket CORS configuration. - cors.clear(); + // Clear bucket CORS configuration. + cors.clear(); - // Update bucket to remove CORS. - bucket.toBuilder().setCors(cors).build().update(); - System.out.println("Removed CORS configuration from bucket " + bucketName); + // Update bucket to remove CORS. + bucket.toBuilder().setCors(cors).build().update(); + System.out.println("Removed CORS configuration from bucket " + bucketName); + } } } // [END storage_remove_cors_configuration] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultKmsKey.java b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultKmsKey.java index 26c0747507..36909a1ae9 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultKmsKey.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultKmsKey.java @@ -23,21 +23,24 @@ import com.google.cloud.storage.StorageOptions; public class RemoveBucketDefaultKmsKey { - public static void removeBucketDefaultKmsKey(String projectId, String bucketName) { + public static void removeBucketDefaultKmsKey(String projectId, String bucketName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - // first look up the bucket, so we will have its metageneration - Bucket bucket = storage.get(bucketName); - storage.update( - bucket.toBuilder().setDefaultKmsKeyName(null).build(), - BucketTargetOption.metagenerationMatch()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + // first look up the bucket, so we will have its metageneration + Bucket bucket = storage.get(bucketName); + storage.update( + bucket.toBuilder().setDefaultKmsKeyName(null).build(), + BucketTargetOption.metagenerationMatch()); - System.out.println("Default KMS key was removed from " + bucketName); + System.out.println("Default KMS key was removed from " + bucketName); + } } } // [END storage_bucket_delete_default_kms_key] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultOwner.java b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultOwner.java index f3e342b284..235e84a08b 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultOwner.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketDefaultOwner.java @@ -25,7 +25,8 @@ public class RemoveBucketDefaultOwner { - public static void removeBucketDefaultOwner(String bucketName, String userEmail) { + public static void removeBucketDefaultOwner(String bucketName, String userEmail) + throws Exception { // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; @@ -33,15 +34,16 @@ public static void removeBucketDefaultOwner(String bucketName, String userEmail) // The email of the user you wish to remove as a default owner // String userEmail = "someuser@domain.com" - Storage storage = StorageOptions.newBuilder().build().getService(); - Bucket bucket = storage.get(bucketName); - User userToRemove = new User(userEmail); + try (Storage storage = StorageOptions.newBuilder().build().getService()) { + Bucket bucket = storage.get(bucketName); + User userToRemove = new User(userEmail); - boolean success = bucket.deleteDefaultAcl(userToRemove); - if (success) { - System.out.println("Removed user " + userEmail + " as an owner on " + bucketName); - } else { - System.out.println("User " + userEmail + " was not found"); + boolean success = bucket.deleteDefaultAcl(userToRemove); + if (success) { + System.out.println("Removed user " + userEmail + " as an owner on " + bucketName); + } else { + System.out.println("User " + userEmail + " was not found"); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketIamConditionalBinding.java b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketIamConditionalBinding.java index 71ea948177..b2c49e89d6 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketIamConditionalBinding.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketIamConditionalBinding.java @@ -29,7 +29,8 @@ public class RemoveBucketIamConditionalBinding { /** Example of removing a conditional binding to the Bucket-level IAM */ - public static void removeBucketIamConditionalBinding(String projectId, String bucketName) { + public static void removeBucketIamConditionalBinding(String projectId, String bucketName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -38,42 +39,45 @@ public static void removeBucketIamConditionalBinding(String projectId, String bu // For more information please read: // https://cloud.google.com/storage/docs/access-control/iam - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - Policy originalPolicy = - storage.getIamPolicy(bucketName, Storage.BucketSourceOption.requestedPolicyVersion(3)); + Policy originalPolicy = + storage.getIamPolicy(bucketName, Storage.BucketSourceOption.requestedPolicyVersion(3)); - String role = "roles/storage.objectViewer"; + String role = "roles/storage.objectViewer"; - // getBindingsList() returns an ImmutableList and copying over to an ArrayList so it's mutable. - List bindings = new ArrayList(originalPolicy.getBindingsList()); + // getBindingsList() returns an ImmutableList and copying over to an ArrayList so it's + // mutable. + List bindings = new ArrayList(originalPolicy.getBindingsList()); - // Create a condition to compare against - Condition.Builder conditionBuilder = Condition.newBuilder(); - conditionBuilder.setTitle("Title"); - conditionBuilder.setDescription("Description"); - conditionBuilder.setExpression( - "resource.name.startsWith(\"projects/_/buckets/bucket-name/objects/prefix-a-\")"); + // Create a condition to compare against + Condition.Builder conditionBuilder = Condition.newBuilder(); + conditionBuilder.setTitle("Title"); + conditionBuilder.setDescription("Description"); + conditionBuilder.setExpression( + "resource.name.startsWith(\"projects/_/buckets/bucket-name/objects/prefix-a-\")"); - Iterator iterator = bindings.iterator(); - while (iterator.hasNext()) { - Binding binding = (Binding) iterator.next(); - boolean foundRole = binding.getRole().equals(role); - boolean conditionsEqual = conditionBuilder.build().equals(binding.getCondition()); + Iterator iterator = bindings.iterator(); + while (iterator.hasNext()) { + Binding binding = (Binding) iterator.next(); + boolean foundRole = binding.getRole().equals(role); + boolean conditionsEqual = conditionBuilder.build().equals(binding.getCondition()); - // Remove condition when the role and condition are equal - if (foundRole && conditionsEqual) { - iterator.remove(); - break; + // Remove condition when the role and condition are equal + if (foundRole && conditionsEqual) { + iterator.remove(); + break; + } } - } - // Update policy to remove conditional binding - Policy.Builder updatedPolicyBuilder = originalPolicy.toBuilder(); - updatedPolicyBuilder.setBindings(bindings).setVersion(3); - Policy updatedPolicy = storage.setIamPolicy(bucketName, updatedPolicyBuilder.build()); + // Update policy to remove conditional binding + Policy.Builder updatedPolicyBuilder = originalPolicy.toBuilder(); + updatedPolicyBuilder.setBindings(bindings).setVersion(3); + Policy updatedPolicy = storage.setIamPolicy(bucketName, updatedPolicyBuilder.build()); - System.out.println("Conditional Binding was removed."); + System.out.println("Conditional Binding was removed."); + } } } // [END storage_remove_bucket_conditional_iam_binding] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketIamMember.java b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketIamMember.java index 026b3ab094..3ae996e526 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketIamMember.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketIamMember.java @@ -26,7 +26,7 @@ import java.util.List; public class RemoveBucketIamMember { - public static void removeBucketIamMember(String projectId, String bucketName) { + public static void removeBucketIamMember(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -35,36 +35,39 @@ public static void removeBucketIamMember(String projectId, String bucketName) { // For more information please read: // https://cloud.google.com/storage/docs/access-control/iam - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - Policy originalPolicy = - storage.getIamPolicy(bucketName, Storage.BucketSourceOption.requestedPolicyVersion(3)); + Policy originalPolicy = + storage.getIamPolicy(bucketName, Storage.BucketSourceOption.requestedPolicyVersion(3)); - String role = "roles/storage.objectViewer"; - String member = "group:example@google.com"; + String role = "roles/storage.objectViewer"; + String member = "group:example@google.com"; - // getBindingsList() returns an ImmutableList and copying over to an ArrayList so it's mutable. - List bindings = new ArrayList(originalPolicy.getBindingsList()); + // getBindingsList() returns an ImmutableList and copying over to an ArrayList so it's + // mutable. + List bindings = new ArrayList(originalPolicy.getBindingsList()); - // Remove role-member binding without a condition. - for (int index = 0; index < bindings.size(); index++) { - Binding binding = bindings.get(index); - boolean foundRole = binding.getRole().equals(role); - boolean foundMember = binding.getMembers().contains(member); - boolean bindingIsNotConditional = binding.getCondition() == null; + // Remove role-member binding without a condition. + for (int index = 0; index < bindings.size(); index++) { + Binding binding = bindings.get(index); + boolean foundRole = binding.getRole().equals(role); + boolean foundMember = binding.getMembers().contains(member); + boolean bindingIsNotConditional = binding.getCondition() == null; - if (foundRole && foundMember && bindingIsNotConditional) { - bindings.set(index, binding.toBuilder().removeMembers(member).build()); - break; + if (foundRole && foundMember && bindingIsNotConditional) { + bindings.set(index, binding.toBuilder().removeMembers(member).build()); + break; + } } - } - // Update policy to remove member - Policy.Builder updatedPolicyBuilder = originalPolicy.toBuilder(); - updatedPolicyBuilder.setBindings(bindings).setVersion(3); - Policy updatedPolicy = storage.setIamPolicy(bucketName, updatedPolicyBuilder.build()); + // Update policy to remove member + Policy.Builder updatedPolicyBuilder = originalPolicy.toBuilder(); + updatedPolicyBuilder.setBindings(bindings).setVersion(3); + Policy updatedPolicy = storage.setIamPolicy(bucketName, updatedPolicyBuilder.build()); - System.out.printf("Removed %s with role %s from %s\n", member, role, bucketName); + System.out.printf("Removed %s with role %s from %s\n", member, role, bucketName); + } } } // [END storage_remove_bucket_iam_member] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketLabel.java b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketLabel.java index 1e63ba76d3..3684cec122 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketLabel.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketLabel.java @@ -25,7 +25,8 @@ import java.util.Map; public class RemoveBucketLabel { - public static void removeBucketLabel(String projectId, String bucketName, String labelKey) { + public static void removeBucketLabel(String projectId, String bucketName, String labelKey) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -35,22 +36,24 @@ public static void removeBucketLabel(String projectId, String bucketName, String // The key of the label to remove from the bucket // String labelKey = "label-key-to-remove"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - Map labelsToRemove = new HashMap<>(); - labelsToRemove.put(labelKey, null); + Map labelsToRemove = new HashMap<>(); + labelsToRemove.put(labelKey, null); - Bucket bucket = storage.get(bucketName); - Map labels; - if (bucket.getLabels() == null) { - labels = new HashMap<>(); - } else { - labels = new HashMap(bucket.getLabels()); - } - labels.putAll(labelsToRemove); - bucket.toBuilder().setLabels(labels).build().update(); + Bucket bucket = storage.get(bucketName); + Map labels; + if (bucket.getLabels() == null) { + labels = new HashMap<>(); + } else { + labels = new HashMap(bucket.getLabels()); + } + labels.putAll(labelsToRemove); + bucket.toBuilder().setLabels(labels).build().update(); - System.out.println("Removed label " + labelKey + " from bucket " + bucketName); + System.out.println("Removed label " + labelKey + " from bucket " + bucketName); + } } } // [END storage_remove_bucket_label] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketOwner.java b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketOwner.java index 07334b78d5..be5b6c01c2 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketOwner.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveBucketOwner.java @@ -25,7 +25,8 @@ public class RemoveBucketOwner { - public static void removeBucketOwner(String projectId, String bucketName, String userEmail) { + public static void removeBucketOwner(String projectId, String bucketName, String userEmail) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -36,15 +37,17 @@ public static void removeBucketOwner(String projectId, String bucketName, String // Email of the user you wish to remove as an owner // String userEmail = "someuser@domain.com" - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - User ownerToRemove = new User(userEmail); - - boolean success = bucket.deleteAcl(ownerToRemove); - if (success) { - System.out.println("Removed user " + userEmail + " as an owner on " + bucketName); - } else { - System.out.println("User " + userEmail + " was not found"); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + User ownerToRemove = new User(userEmail); + + boolean success = bucket.deleteAcl(ownerToRemove); + if (success) { + System.out.println("Removed user " + userEmail + " as an owner on " + bucketName); + } else { + System.out.println("User " + userEmail + " was not found"); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveRetentionPolicy.java b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveRetentionPolicy.java index 8ad4875b29..2c39be15c0 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/RemoveRetentionPolicy.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/RemoveRetentionPolicy.java @@ -20,31 +20,31 @@ import com.google.cloud.storage.Bucket; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class RemoveRetentionPolicy { - public static void removeRetentionPolicy(String projectId, String bucketName) - throws StorageException, IllegalArgumentException { + public static void removeRetentionPolicy(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - Bucket bucket = - storage.get( - bucketName, Storage.BucketGetOption.fields(Storage.BucketField.RETENTION_POLICY)); - if (bucket.retentionPolicyIsLocked() != null && bucket.retentionPolicyIsLocked()) { - throw new IllegalArgumentException( - "Unable to remove retention policy as retention policy is locked."); - } + Bucket bucket = + storage.get( + bucketName, Storage.BucketGetOption.fields(Storage.BucketField.RETENTION_POLICY)); + if (bucket.retentionPolicyIsLocked() != null && bucket.retentionPolicyIsLocked()) { + throw new IllegalArgumentException( + "Unable to remove retention policy as retention policy is locked."); + } - bucket.toBuilder().setRetentionPeriod(null).build().update(); + bucket.toBuilder().setRetentionPeriod(null).build().update(); - System.out.println("Retention policy for " + bucketName + " has been removed"); + System.out.println("Retention policy for " + bucketName + " has been removed"); + } } } // [END storage_remove_retention_policy] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/SetAsyncTurboRpo.java b/samples/snippets/src/main/java/com/example/storage/bucket/SetAsyncTurboRpo.java index 137e940b26..8bbfa58b10 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/SetAsyncTurboRpo.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/SetAsyncTurboRpo.java @@ -23,19 +23,21 @@ import com.google.cloud.storage.StorageOptions; public class SetAsyncTurboRpo { - public static void setAsyncTurboRpo(String projectId, String bucketName) { + public static void setAsyncTurboRpo(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); - bucket.toBuilder().setRpo(Rpo.ASYNC_TURBO).build().update(); + bucket.toBuilder().setRpo(Rpo.ASYNC_TURBO).build().update(); - System.out.println("Turbo replication was enabled for " + bucketName); + System.out.println("Turbo replication was enabled for " + bucketName); + } } } // [END storage_set_rpo_async_turbo] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/SetBucketDefaultKmsKey.java b/samples/snippets/src/main/java/com/example/storage/bucket/SetBucketDefaultKmsKey.java index 995001dbb1..e0d608818d 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/SetBucketDefaultKmsKey.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/SetBucketDefaultKmsKey.java @@ -21,12 +21,11 @@ import com.google.cloud.storage.Bucket; import com.google.cloud.storage.Storage; import com.google.cloud.storage.Storage.BucketTargetOption; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class SetBucketDefaultKmsKey { public static void setBucketDefaultKmsKey(String projectId, String bucketName, String kmsKeyName) - throws StorageException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -37,20 +36,22 @@ public static void setBucketDefaultKmsKey(String projectId, String bucketName, S // String kmsKeyName = // "projects/your-project-id/locations/us/keyRings/my_key_ring/cryptoKeys/my_key" - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - // first look up the bucket, so we will have its metageneration - Bucket bucket = storage.get(bucketName); - - Bucket updated = - storage.update( - bucket.toBuilder().setDefaultKmsKeyName(kmsKeyName).build(), - BucketTargetOption.metagenerationMatch()); - - System.out.println( - "KMS Key " - + updated.getDefaultKmsKeyName() - + "was set to default for bucket " - + bucketName); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + // first look up the bucket, so we will have its metageneration + Bucket bucket = storage.get(bucketName); + + Bucket updated = + storage.update( + bucket.toBuilder().setDefaultKmsKeyName(kmsKeyName).build(), + BucketTargetOption.metagenerationMatch()); + + System.out.println( + "KMS Key " + + updated.getDefaultKmsKeyName() + + "was set to default for bucket " + + bucketName); + } } } // [END storage_set_bucket_default_kms_key] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/SetBucketWebsiteInfo.java b/samples/snippets/src/main/java/com/example/storage/bucket/SetBucketWebsiteInfo.java index b9e1afd416..36e861d625 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/SetBucketWebsiteInfo.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/SetBucketWebsiteInfo.java @@ -23,7 +23,7 @@ public class SetBucketWebsiteInfo { public static void setBucketWesbiteInfo( - String projectId, String bucketName, String indexPage, String notFoundPage) { + String projectId, String bucketName, String indexPage, String notFoundPage) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -36,18 +36,20 @@ public static void setBucketWesbiteInfo( // The 404 page for a static website bucket // String notFoundPage = "404.html"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - bucket.toBuilder().setIndexPage(indexPage).setNotFoundPage(notFoundPage).build().update(); - - System.out.println( - "Static website bucket " - + bucketName - + " is set up to use " - + indexPage - + " as the index page and " - + notFoundPage - + " as the 404 page"); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + bucket.toBuilder().setIndexPage(indexPage).setNotFoundPage(notFoundPage).build().update(); + + System.out.println( + "Static website bucket " + + bucketName + + " is set up to use " + + indexPage + + " as the index page and " + + notFoundPage + + " as the 404 page"); + } } } // [END storage_define_bucket_website_configuration] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/SetClientEndpoint.java b/samples/snippets/src/main/java/com/example/storage/bucket/SetClientEndpoint.java index 9fdf7b9766..2a5b1ae372 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/SetClientEndpoint.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/SetClientEndpoint.java @@ -23,18 +23,23 @@ public class SetClientEndpoint { - public static void setClientEndpoint(String projectId, String endpoint) { + public static void setClientEndpoint(String projectId, String endpoint) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The endpoint you wish to target // String endpoint = "https://storage.googleapis.com" - Storage storage = - StorageOptions.newBuilder().setProjectId(projectId).setHost(endpoint).build().getService(); + try (Storage storage = + StorageOptions.newBuilder() + .setProjectId(projectId) + .setHost(endpoint) + .build() + .getService()) { - System.out.println( - "Storage Client initialized with endpoint " + storage.getOptions().getHost()); + System.out.println( + "Storage Client initialized with endpoint " + storage.getOptions().getHost()); + } } } diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/SetDefaultRpo.java b/samples/snippets/src/main/java/com/example/storage/bucket/SetDefaultRpo.java index c135e0436f..6a05d0de8a 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/SetDefaultRpo.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/SetDefaultRpo.java @@ -23,19 +23,21 @@ import com.google.cloud.storage.StorageOptions; public class SetDefaultRpo { - public static void setDefaultRpo(String projectId, String bucketName) { + public static void setDefaultRpo(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); - bucket.toBuilder().setRpo(Rpo.DEFAULT).build().update(); + bucket.toBuilder().setRpo(Rpo.DEFAULT).build().update(); - System.out.println("Replication was set to default for " + bucketName); + System.out.println("Replication was set to default for " + bucketName); + } } } // [END storage_set_rpo_default] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/SetPublicAccessPreventionEnforced.java b/samples/snippets/src/main/java/com/example/storage/bucket/SetPublicAccessPreventionEnforced.java index c959dce210..b92211c1a3 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/SetPublicAccessPreventionEnforced.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/SetPublicAccessPreventionEnforced.java @@ -23,26 +23,29 @@ import com.google.cloud.storage.StorageOptions; public class SetPublicAccessPreventionEnforced { - public static void setPublicAccessPreventionEnforced(String projectId, String bucketName) { + public static void setPublicAccessPreventionEnforced(String projectId, String bucketName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); - // Enforces public access prevention for the bucket - bucket.toBuilder() - .setIamConfiguration( - BucketInfo.IamConfiguration.newBuilder() - .setPublicAccessPrevention(BucketInfo.PublicAccessPrevention.ENFORCED) - .build()) - .build() - .update(); + // Enforces public access prevention for the bucket + bucket.toBuilder() + .setIamConfiguration( + BucketInfo.IamConfiguration.newBuilder() + .setPublicAccessPrevention(BucketInfo.PublicAccessPrevention.ENFORCED) + .build()) + .build() + .update(); - System.out.println("Public access prevention is set to enforced for " + bucketName); + System.out.println("Public access prevention is set to enforced for " + bucketName); + } } } // [END storage_set_public_access_prevention_enforced] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/SetPublicAccessPreventionInherited.java b/samples/snippets/src/main/java/com/example/storage/bucket/SetPublicAccessPreventionInherited.java index 0208f70824..bfa898fa95 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/SetPublicAccessPreventionInherited.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/SetPublicAccessPreventionInherited.java @@ -23,26 +23,29 @@ import com.google.cloud.storage.StorageOptions; public class SetPublicAccessPreventionInherited { - public static void setPublicAccessPreventionInherited(String projectId, String bucketName) { + public static void setPublicAccessPreventionInherited(String projectId, String bucketName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); - // Sets public access prevention to 'inherited' for the bucket - bucket.toBuilder() - .setIamConfiguration( - BucketInfo.IamConfiguration.newBuilder() - .setPublicAccessPrevention(BucketInfo.PublicAccessPrevention.INHERITED) - .build()) - .build() - .update(); + // Sets public access prevention to 'inherited' for the bucket + bucket.toBuilder() + .setIamConfiguration( + BucketInfo.IamConfiguration.newBuilder() + .setPublicAccessPrevention(BucketInfo.PublicAccessPrevention.INHERITED) + .build()) + .build() + .update(); - System.out.println("Public access prevention is set to 'inherited' for " + bucketName); + System.out.println("Public access prevention is set to 'inherited' for " + bucketName); + } } } // [END storage_set_public_access_prevention_inherited] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/SetRetentionPolicy.java b/samples/snippets/src/main/java/com/example/storage/bucket/SetRetentionPolicy.java index 4491ed3897..ccf27b5edc 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/SetRetentionPolicy.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/SetRetentionPolicy.java @@ -21,13 +21,12 @@ import com.google.cloud.storage.Bucket; import com.google.cloud.storage.Storage; import com.google.cloud.storage.Storage.BucketTargetOption; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import java.time.Duration; public class SetRetentionPolicy { public static void setRetentionPolicy( - String projectId, String bucketName, Long retentionPeriodSeconds) throws StorageException { + String projectId, String bucketName, Long retentionPeriodSeconds) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -37,22 +36,24 @@ public static void setRetentionPolicy( // The retention period for objects in bucket // Long retentionPeriodSeconds = 3600L; // 1 hour in seconds - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - - // first look up the bucket so we will have its metageneration - Bucket bucket = storage.get(bucketName); - Bucket bucketWithRetentionPolicy = - storage.update( - bucket.toBuilder() - .setRetentionPeriodDuration(Duration.ofSeconds(retentionPeriodSeconds)) - .build(), - BucketTargetOption.metagenerationMatch()); - - System.out.println( - "Retention period for " - + bucketName - + " is now " - + bucketWithRetentionPolicy.getRetentionPeriodDuration()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + + // first look up the bucket so we will have its metageneration + Bucket bucket = storage.get(bucketName); + Bucket bucketWithRetentionPolicy = + storage.update( + bucket.toBuilder() + .setRetentionPeriodDuration(Duration.ofSeconds(retentionPeriodSeconds)) + .build(), + BucketTargetOption.metagenerationMatch()); + + System.out.println( + "Retention period for " + + bucketName + + " is now " + + bucketWithRetentionPolicy.getRetentionPeriodDuration()); + } } } // [END storage_set_retention_policy] diff --git a/samples/snippets/src/main/java/com/example/storage/bucket/SetSoftDeletePolicy.java b/samples/snippets/src/main/java/com/example/storage/bucket/SetSoftDeletePolicy.java index e923cb2faa..8fc674a507 100644 --- a/samples/snippets/src/main/java/com/example/storage/bucket/SetSoftDeletePolicy.java +++ b/samples/snippets/src/main/java/com/example/storage/bucket/SetSoftDeletePolicy.java @@ -24,25 +24,27 @@ import java.time.Duration; public class SetSoftDeletePolicy { - public static void setSoftDeletePolicy(String projectId, String bucketName) { + public static void setSoftDeletePolicy(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - bucket.toBuilder() - .setSoftDeletePolicy( - BucketInfo.SoftDeletePolicy.newBuilder() - .setRetentionDuration(Duration.ofDays(10)) - .build()) - .build() - .update(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + bucket.toBuilder() + .setSoftDeletePolicy( + BucketInfo.SoftDeletePolicy.newBuilder() + .setRetentionDuration(Duration.ofDays(10)) + .build()) + .build() + .update(); - System.out.println( - "Soft delete policy for " + bucketName + " was set to a 10-day retention period"); + System.out.println( + "Soft delete policy for " + bucketName + " was set to a 10-day retention period"); + } } } // [END storage_set_soft_delete_policy] diff --git a/samples/snippets/src/main/java/com/example/storage/hmac/ActivateHmacKey.java b/samples/snippets/src/main/java/com/example/storage/hmac/ActivateHmacKey.java index 9a23e39161..2d0030514b 100644 --- a/samples/snippets/src/main/java/com/example/storage/hmac/ActivateHmacKey.java +++ b/samples/snippets/src/main/java/com/example/storage/hmac/ActivateHmacKey.java @@ -20,35 +20,36 @@ import com.google.cloud.storage.HmacKey; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import java.util.Date; public class ActivateHmacKey { - public static void activateHmacKey(String accessId, String projectId) throws StorageException { + public static void activateHmacKey(String accessId, String projectId) throws Exception { // The access ID of the HMAC key. // String accessId = "GOOG0234230X00"; // The ID of the project to which the service account belongs. // String projectId = "project-id"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - - HmacKey.HmacKeyMetadata metadata = - storage.getHmacKey(accessId, Storage.GetHmacKeyOption.projectId(projectId)); - HmacKey.HmacKeyMetadata newMetadata = - storage.updateHmacKeyState(metadata, HmacKey.HmacKeyState.ACTIVE); - - System.out.println("The HMAC key is now active."); - System.out.println("The HMAC key metadata is:"); - System.out.println("ID: " + newMetadata.getId()); - System.out.println("Access ID: " + newMetadata.getAccessId()); - System.out.println("Project ID: " + newMetadata.getProjectId()); - System.out.println("Service Account Email: " + newMetadata.getServiceAccount().getEmail()); - System.out.println("State: " + newMetadata.getState().toString()); - System.out.println("Time Created: " + new Date(newMetadata.getCreateTime()).toString()); - System.out.println("Time Updated: " + new Date(newMetadata.getUpdateTime()).toString()); - System.out.println("ETag: " + newMetadata.getEtag()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + + HmacKey.HmacKeyMetadata metadata = + storage.getHmacKey(accessId, Storage.GetHmacKeyOption.projectId(projectId)); + HmacKey.HmacKeyMetadata newMetadata = + storage.updateHmacKeyState(metadata, HmacKey.HmacKeyState.ACTIVE); + + System.out.println("The HMAC key is now active."); + System.out.println("The HMAC key metadata is:"); + System.out.println("ID: " + newMetadata.getId()); + System.out.println("Access ID: " + newMetadata.getAccessId()); + System.out.println("Project ID: " + newMetadata.getProjectId()); + System.out.println("Service Account Email: " + newMetadata.getServiceAccount().getEmail()); + System.out.println("State: " + newMetadata.getState().toString()); + System.out.println("Time Created: " + new Date(newMetadata.getCreateTime()).toString()); + System.out.println("Time Updated: " + new Date(newMetadata.getUpdateTime()).toString()); + System.out.println("ETag: " + newMetadata.getEtag()); + } } } // [END storage_activate_hmac_key] diff --git a/samples/snippets/src/main/java/com/example/storage/hmac/CreateHmacKey.java b/samples/snippets/src/main/java/com/example/storage/hmac/CreateHmacKey.java index 5c729a8dd1..4c67e69d8c 100644 --- a/samples/snippets/src/main/java/com/example/storage/hmac/CreateHmacKey.java +++ b/samples/snippets/src/main/java/com/example/storage/hmac/CreateHmacKey.java @@ -21,13 +21,11 @@ import com.google.cloud.storage.HmacKey; import com.google.cloud.storage.ServiceAccount; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import java.util.Date; public class CreateHmacKey { - public static void createHmacKey(String serviceAccountEmail, String projectId) - throws StorageException { + public static void createHmacKey(String serviceAccountEmail, String projectId) throws Exception { // The service account email for which the new HMAC key will be created. // String serviceAccountEmail = "service-account@iam.gserviceaccount.com"; @@ -35,26 +33,28 @@ public static void createHmacKey(String serviceAccountEmail, String projectId) // The ID of the project to which the service account belongs. // String projectId = "project-id"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - - ServiceAccount account = ServiceAccount.of(serviceAccountEmail); - HmacKey hmacKey = - storage.createHmacKey(account, Storage.CreateHmacKeyOption.projectId(projectId)); - - String secret = hmacKey.getSecretKey(); - HmacKey.HmacKeyMetadata metadata = hmacKey.getMetadata(); - - System.out.println("The Base64 encoded secret is: " + secret); - System.out.println("Do not lose that secret, there is no API to recover it."); - System.out.println("The HMAC key metadata is:"); - System.out.println("ID: " + metadata.getId()); - System.out.println("Access ID: " + metadata.getAccessId()); - System.out.println("Project ID: " + metadata.getProjectId()); - System.out.println("Service Account Email: " + metadata.getServiceAccount().getEmail()); - System.out.println("State: " + metadata.getState().toString()); - System.out.println("Time Created: " + new Date(metadata.getCreateTime()).toString()); - System.out.println("Time Updated: " + new Date(metadata.getUpdateTime()).toString()); - System.out.println("ETag: " + metadata.getEtag()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + + ServiceAccount account = ServiceAccount.of(serviceAccountEmail); + HmacKey hmacKey = + storage.createHmacKey(account, Storage.CreateHmacKeyOption.projectId(projectId)); + + String secret = hmacKey.getSecretKey(); + HmacKey.HmacKeyMetadata metadata = hmacKey.getMetadata(); + + System.out.println("The Base64 encoded secret is: " + secret); + System.out.println("Do not lose that secret, there is no API to recover it."); + System.out.println("The HMAC key metadata is:"); + System.out.println("ID: " + metadata.getId()); + System.out.println("Access ID: " + metadata.getAccessId()); + System.out.println("Project ID: " + metadata.getProjectId()); + System.out.println("Service Account Email: " + metadata.getServiceAccount().getEmail()); + System.out.println("State: " + metadata.getState().toString()); + System.out.println("Time Created: " + new Date(metadata.getCreateTime()).toString()); + System.out.println("Time Updated: " + new Date(metadata.getUpdateTime()).toString()); + System.out.println("ETag: " + metadata.getEtag()); + } } } // [END storage_create_hmac_key] diff --git a/samples/snippets/src/main/java/com/example/storage/hmac/DeactivateHmacKey.java b/samples/snippets/src/main/java/com/example/storage/hmac/DeactivateHmacKey.java index 129cedf9e4..bcab85e5d0 100644 --- a/samples/snippets/src/main/java/com/example/storage/hmac/DeactivateHmacKey.java +++ b/samples/snippets/src/main/java/com/example/storage/hmac/DeactivateHmacKey.java @@ -20,35 +20,36 @@ import com.google.cloud.storage.HmacKey; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import java.util.Date; public class DeactivateHmacKey { - public static void deactivateHmacKey(String accessId, String projectId) throws StorageException { + public static void deactivateHmacKey(String accessId, String projectId) throws Exception { // The access ID of the HMAC key. // String accessId = "GOOG0234230X00"; // The ID of the project to which the service account belongs. // String projectId = "project-id"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - - HmacKey.HmacKeyMetadata metadata = - storage.getHmacKey(accessId, Storage.GetHmacKeyOption.projectId(projectId)); - HmacKey.HmacKeyMetadata newMetadata = - storage.updateHmacKeyState(metadata, HmacKey.HmacKeyState.INACTIVE); - - System.out.println("The HMAC key is now inactive."); - System.out.println("The HMAC key metadata is:"); - System.out.println("ID: " + newMetadata.getId()); - System.out.println("Access ID: " + newMetadata.getAccessId()); - System.out.println("Project ID: " + newMetadata.getProjectId()); - System.out.println("Service Account Email: " + newMetadata.getServiceAccount().getEmail()); - System.out.println("State: " + newMetadata.getState().toString()); - System.out.println("Time Created: " + new Date(newMetadata.getCreateTime()).toString()); - System.out.println("Time Updated: " + new Date(newMetadata.getUpdateTime()).toString()); - System.out.println("ETag: " + newMetadata.getEtag()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + + HmacKey.HmacKeyMetadata metadata = + storage.getHmacKey(accessId, Storage.GetHmacKeyOption.projectId(projectId)); + HmacKey.HmacKeyMetadata newMetadata = + storage.updateHmacKeyState(metadata, HmacKey.HmacKeyState.INACTIVE); + + System.out.println("The HMAC key is now inactive."); + System.out.println("The HMAC key metadata is:"); + System.out.println("ID: " + newMetadata.getId()); + System.out.println("Access ID: " + newMetadata.getAccessId()); + System.out.println("Project ID: " + newMetadata.getProjectId()); + System.out.println("Service Account Email: " + newMetadata.getServiceAccount().getEmail()); + System.out.println("State: " + newMetadata.getState().toString()); + System.out.println("Time Created: " + new Date(newMetadata.getCreateTime()).toString()); + System.out.println("Time Updated: " + new Date(newMetadata.getUpdateTime()).toString()); + System.out.println("ETag: " + newMetadata.getEtag()); + } } } // [END storage_deactivate_hmac_key] diff --git a/samples/snippets/src/main/java/com/example/storage/hmac/DeleteHmacKey.java b/samples/snippets/src/main/java/com/example/storage/hmac/DeleteHmacKey.java index afd599f6e2..03fc56e2a7 100644 --- a/samples/snippets/src/main/java/com/example/storage/hmac/DeleteHmacKey.java +++ b/samples/snippets/src/main/java/com/example/storage/hmac/DeleteHmacKey.java @@ -20,11 +20,10 @@ import com.google.cloud.storage.HmacKey; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class DeleteHmacKey { - public static void deleteHmacKey(String accessId, String projectId) throws StorageException { + public static void deleteHmacKey(String accessId, String projectId) throws Exception { // The access ID of the HMAC key. // String accessId = "GOOG0234230X00"; @@ -32,15 +31,17 @@ public static void deleteHmacKey(String accessId, String projectId) throws Stora // The ID of the project to which the service account belongs. // String projectId = "project-id"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - HmacKey.HmacKeyMetadata metadata = - storage.getHmacKey(accessId, Storage.GetHmacKeyOption.projectId(projectId)); - storage.deleteHmacKey(metadata); + HmacKey.HmacKeyMetadata metadata = + storage.getHmacKey(accessId, Storage.GetHmacKeyOption.projectId(projectId)); + storage.deleteHmacKey(metadata); - System.out.println( - "The key is deleted, though it will still appear in " - + "getHmacKeys() results if called with showDeletedKey."); + System.out.println( + "The key is deleted, though it will still appear in " + + "getHmacKeys() results if called with showDeletedKey."); + } } } // [END storage_delete_hmac_key] diff --git a/samples/snippets/src/main/java/com/example/storage/hmac/GetHmacKey.java b/samples/snippets/src/main/java/com/example/storage/hmac/GetHmacKey.java index eea8fe22b5..efc8e1c57e 100644 --- a/samples/snippets/src/main/java/com/example/storage/hmac/GetHmacKey.java +++ b/samples/snippets/src/main/java/com/example/storage/hmac/GetHmacKey.java @@ -20,32 +20,33 @@ import com.google.cloud.storage.HmacKey; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import java.util.Date; public class GetHmacKey { - public static void getHmacKey(String accessId, String projectId) throws StorageException { + public static void getHmacKey(String accessId, String projectId) throws Exception { // The access ID of the HMAC key. // String accessId = "GOOG0234230X00"; // The ID of the project to which the service account belongs. // String projectId = "project-id"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - - HmacKey.HmacKeyMetadata metadata = - storage.getHmacKey(accessId, Storage.GetHmacKeyOption.projectId(projectId)); - - System.out.println("The HMAC key metadata is:"); - System.out.println("ID: " + metadata.getId()); - System.out.println("Access ID: " + metadata.getAccessId()); - System.out.println("Project ID: " + metadata.getProjectId()); - System.out.println("Service Account Email: " + metadata.getServiceAccount().getEmail()); - System.out.println("State: " + metadata.getState().toString()); - System.out.println("Time Created: " + new Date(metadata.getCreateTime()).toString()); - System.out.println("Time Updated: " + new Date(metadata.getUpdateTime()).toString()); - System.out.println("ETag: " + metadata.getEtag()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + + HmacKey.HmacKeyMetadata metadata = + storage.getHmacKey(accessId, Storage.GetHmacKeyOption.projectId(projectId)); + + System.out.println("The HMAC key metadata is:"); + System.out.println("ID: " + metadata.getId()); + System.out.println("Access ID: " + metadata.getAccessId()); + System.out.println("Project ID: " + metadata.getProjectId()); + System.out.println("Service Account Email: " + metadata.getServiceAccount().getEmail()); + System.out.println("State: " + metadata.getState().toString()); + System.out.println("Time Created: " + new Date(metadata.getCreateTime()).toString()); + System.out.println("Time Updated: " + new Date(metadata.getUpdateTime()).toString()); + System.out.println("ETag: " + metadata.getEtag()); + } } } // [END storage_get_hmac_key] diff --git a/samples/snippets/src/main/java/com/example/storage/hmac/ListHmacKeys.java b/samples/snippets/src/main/java/com/example/storage/hmac/ListHmacKeys.java index 538fc95909..aa0cd77d88 100644 --- a/samples/snippets/src/main/java/com/example/storage/hmac/ListHmacKeys.java +++ b/samples/snippets/src/main/java/com/example/storage/hmac/ListHmacKeys.java @@ -21,22 +21,23 @@ import com.google.api.gax.paging.Page; import com.google.cloud.storage.HmacKey; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class ListHmacKeys { - public static void listHmacKeys(String projectId) throws StorageException { + public static void listHmacKeys(String projectId) throws Exception { // The ID of the project to which the service account belongs. // String projectId = "project-id"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - Page page = - storage.listHmacKeys(Storage.ListHmacKeysOption.projectId(projectId)); + Page page = + storage.listHmacKeys(Storage.ListHmacKeysOption.projectId(projectId)); - for (HmacKey.HmacKeyMetadata metadata : page.iterateAll()) { - System.out.println("Service Account Email: " + metadata.getServiceAccount().getEmail()); - System.out.println("Access ID: " + metadata.getAccessId()); + for (HmacKey.HmacKeyMetadata metadata : page.iterateAll()) { + System.out.println("Service Account Email: " + metadata.getServiceAccount().getEmail()); + System.out.println("Access ID: " + metadata.getAccessId()); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/object/AddBlobOwner.java b/samples/snippets/src/main/java/com/example/storage/object/AddBlobOwner.java index 75c4c88d53..ccb8f60c86 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/AddBlobOwner.java +++ b/samples/snippets/src/main/java/com/example/storage/object/AddBlobOwner.java @@ -29,7 +29,7 @@ public class AddBlobOwner { public static void addBlobOwner( - String projectId, String bucketName, String userEmail, String blobName) { + String projectId, String bucketName, String userEmail, String blobName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -42,18 +42,20 @@ public static void addBlobOwner( // The name of the blob/file that you wish to modify permissions on // String blobName = "your-blob-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Blob blob = storage.get(BlobId.of(bucketName, blobName)); - Acl newOwner = Acl.of(new User(userEmail), Role.OWNER); - - blob.createAcl(newOwner); - System.out.println( - "Added user " - + userEmail - + " as an owner on blob " - + blobName - + " in bucket " - + bucketName); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Blob blob = storage.get(BlobId.of(bucketName, blobName)); + Acl newOwner = Acl.of(new User(userEmail), Role.OWNER); + + blob.createAcl(newOwner); + System.out.println( + "Added user " + + userEmail + + " as an owner on blob " + + blobName + + " in bucket " + + bucketName); + } } } // [END storage_add_file_owner] diff --git a/samples/snippets/src/main/java/com/example/storage/object/AtomicMoveObject.java b/samples/snippets/src/main/java/com/example/storage/object/AtomicMoveObject.java index a4f0d9cdd4..e1b24d1e1a 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/AtomicMoveObject.java +++ b/samples/snippets/src/main/java/com/example/storage/object/AtomicMoveObject.java @@ -27,7 +27,8 @@ public final class AtomicMoveObject { public static void moveObject( - String projectId, String bucketName, String sourceObjectName, String targetObjectName) { + String projectId, String bucketName, String sourceObjectName, String targetObjectName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -41,40 +42,42 @@ public static void moveObject( // The ID of your GCS object // String targetObjectName = "your-new-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId source = BlobId.of(bucketName, sourceObjectName); - BlobId target = BlobId.of(bucketName, targetObjectName); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId source = BlobId.of(bucketName, sourceObjectName); + BlobId target = BlobId.of(bucketName, targetObjectName); - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request returns a 412 error if the - // preconditions are not met. - Storage.BlobTargetOption precondition; - BlobInfo existingTarget = storage.get(target); - if (existingTarget == null) { - // For a target object that does not yet exist, set the DoesNotExist precondition. - // This will cause the request to fail if the object is created before the request runs. - precondition = Storage.BlobTargetOption.doesNotExist(); - } else { - // If the destination already exists in your bucket, instead set a generation-match - // precondition. This will cause the request to fail if the existing object's generation - // changes before the request runs. - precondition = Storage.BlobTargetOption.generationMatch(existingTarget.getGeneration()); - } + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request returns a 412 error if the + // preconditions are not met. + Storage.BlobTargetOption precondition; + BlobInfo existingTarget = storage.get(target); + if (existingTarget == null) { + // For a target object that does not yet exist, set the DoesNotExist precondition. + // This will cause the request to fail if the object is created before the request runs. + precondition = Storage.BlobTargetOption.doesNotExist(); + } else { + // If the destination already exists in your bucket, instead set a generation-match + // precondition. This will cause the request to fail if the existing object's generation + // changes before the request runs. + precondition = Storage.BlobTargetOption.generationMatch(existingTarget.getGeneration()); + } - // Atomically move source object to target object within the bucket - MoveBlobRequest moveBlobRequest = - MoveBlobRequest.newBuilder() - .setSource(source) - .setTarget(target) - .setTargetOptions(precondition) - .build(); - BlobInfo movedBlob = storage.moveBlob(moveBlobRequest); + // Atomically move source object to target object within the bucket + MoveBlobRequest moveBlobRequest = + MoveBlobRequest.newBuilder() + .setSource(source) + .setTarget(target) + .setTargetOptions(precondition) + .build(); + BlobInfo movedBlob = storage.moveBlob(moveBlobRequest); - System.out.println( - "Moved object " - + source.toGsUtilUri() - + " to " - + movedBlob.getBlobId().toGsUtilUriWithGeneration()); + System.out.println( + "Moved object " + + source.toGsUtilUri() + + " to " + + movedBlob.getBlobId().toGsUtilUriWithGeneration()); + } } } // [END storage_move_object] diff --git a/samples/snippets/src/main/java/com/example/storage/object/BatchSetObjectMetadata.java b/samples/snippets/src/main/java/com/example/storage/object/BatchSetObjectMetadata.java index 90c6a136f0..2cb16755f2 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/BatchSetObjectMetadata.java +++ b/samples/snippets/src/main/java/com/example/storage/object/BatchSetObjectMetadata.java @@ -32,8 +32,8 @@ import java.util.stream.Collectors; public class BatchSetObjectMetadata { - public static void batchSetObjectMetadata( - String projectId, String bucketName, String pathPrefix) { + public static void batchSetObjectMetadata(String projectId, String bucketName, String pathPrefix) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -44,52 +44,54 @@ public static void batchSetObjectMetadata( // updated // String pathPrefix = "yourPath/"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Map newMetadata = new HashMap<>(); - newMetadata.put("keyToAddOrUpdate", "value"); - Page blobs = - storage.list( - bucketName, - Storage.BlobListOption.prefix(pathPrefix), - Storage.BlobListOption.delimiter("/")); - StorageBatch batchRequest = storage.batch(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Map newMetadata = new HashMap<>(); + newMetadata.put("keyToAddOrUpdate", "value"); + Page blobs = + storage.list( + bucketName, + Storage.BlobListOption.prefix(pathPrefix), + Storage.BlobListOption.delimiter("/")); + StorageBatch batchRequest = storage.batch(); - // Add all blobs with the given prefix to the batch request - List> batchResults = - blobs - .streamAll() - .map(blob -> batchRequest.update(blob.toBuilder().setMetadata(newMetadata).build())) - .collect(Collectors.toList()); + // Add all blobs with the given prefix to the batch request + List> batchResults = + blobs + .streamAll() + .map(blob -> batchRequest.update(blob.toBuilder().setMetadata(newMetadata).build())) + .collect(Collectors.toList()); - // Execute the batch request - batchRequest.submit(); - List failures = - batchResults.stream() - .map( - r -> { - try { - BlobInfo blob = r.get(); - return null; - } catch (StorageException e) { - return e; - } - }) - .filter(Objects::nonNull) - .collect(Collectors.toList()); + // Execute the batch request + batchRequest.submit(); + List failures = + batchResults.stream() + .map( + r -> { + try { + BlobInfo blob = r.get(); + return null; + } catch (StorageException e) { + return e; + } + }) + .filter(Objects::nonNull) + .collect(Collectors.toList()); - System.out.println( - (batchResults.size() - failures.size()) - + " blobs in bucket " - + bucketName - + " with prefix '" - + pathPrefix - + "' had their metadata updated successfully."); + System.out.println( + (batchResults.size() - failures.size()) + + " blobs in bucket " + + bucketName + + " with prefix '" + + pathPrefix + + "' had their metadata updated successfully."); - if (!failures.isEmpty()) { - System.out.println("While processing, there were " + failures.size() + " failures"); + if (!failures.isEmpty()) { + System.out.println("While processing, there were " + failures.size() + " failures"); - for (StorageException failure : failures) { - failure.printStackTrace(System.out); + for (StorageException failure : failures) { + failure.printStackTrace(System.out); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/object/ChangeObjectCsekToKms.java b/samples/snippets/src/main/java/com/example/storage/object/ChangeObjectCsekToKms.java index 730d320a81..7c28f5e529 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/ChangeObjectCsekToKms.java +++ b/samples/snippets/src/main/java/com/example/storage/object/ChangeObjectCsekToKms.java @@ -28,7 +28,8 @@ public static void changeObjectFromCsekToKms( String bucketName, String objectName, String decryptionKey, - String kmsKeyName) { + String kmsKeyName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -46,36 +47,38 @@ public static void changeObjectFromCsekToKms( // String kmsKeyName = // "projects/your-project-id/locations/global/keyRings/your-key-ring/cryptoKeys/your-key"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId blobId = BlobId.of(bucketName, objectName); - Blob blob = storage.get(blobId); - if (blob == null) { - System.out.println("The object " + objectName + " wasn't found in " + bucketName); - return; - } + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId blobId = BlobId.of(bucketName, objectName); + Blob blob = storage.get(blobId); + if (blob == null) { + System.out.println("The object " + objectName + " wasn't found in " + bucketName); + return; + } - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request to upload returns a 412 error if - // the object's generation number does not match your precondition. - Storage.BlobSourceOption precondition = - Storage.BlobSourceOption.generationMatch(blob.getGeneration()); + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request to upload returns a 412 error if + // the object's generation number does not match your precondition. + Storage.BlobSourceOption precondition = + Storage.BlobSourceOption.generationMatch(blob.getGeneration()); - Storage.CopyRequest request = - Storage.CopyRequest.newBuilder() - .setSource(blobId) - .setSourceOptions(Storage.BlobSourceOption.decryptionKey(decryptionKey), precondition) - .setTarget(blobId, Storage.BlobTargetOption.kmsKeyName(kmsKeyName)) - .build(); - storage.copy(request); + Storage.CopyRequest request = + Storage.CopyRequest.newBuilder() + .setSource(blobId) + .setSourceOptions(Storage.BlobSourceOption.decryptionKey(decryptionKey), precondition) + .setTarget(blobId, Storage.BlobTargetOption.kmsKeyName(kmsKeyName)) + .build(); + storage.copy(request); - System.out.println( - "Object " - + objectName - + " in bucket " - + bucketName - + " is now managed by the KMS key " - + kmsKeyName - + " instead of a customer-supplied encryption key"); + System.out.println( + "Object " + + objectName + + " in bucket " + + bucketName + + " is now managed by the KMS key " + + kmsKeyName + + " instead of a customer-supplied encryption key"); + } } } // [END storage_object_csek_to_cmek] diff --git a/samples/snippets/src/main/java/com/example/storage/object/ChangeObjectStorageClass.java b/samples/snippets/src/main/java/com/example/storage/object/ChangeObjectStorageClass.java index 4e2d78d68e..a5a5e747e7 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/ChangeObjectStorageClass.java +++ b/samples/snippets/src/main/java/com/example/storage/object/ChangeObjectStorageClass.java @@ -26,7 +26,7 @@ public class ChangeObjectStorageClass { public static void changeObjectStorageClass( - String projectId, String bucketName, String objectName) { + String projectId, String bucketName, String objectName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -36,44 +36,46 @@ public static void changeObjectStorageClass( // The ID of your GCS object // String objectName = "your-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId blobId = BlobId.of(bucketName, objectName); - Blob sourceBlob = storage.get(blobId); - if (sourceBlob == null) { - System.out.println("The object " + objectName + " wasn't found in " + bucketName); - return; - } + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId blobId = BlobId.of(bucketName, objectName); + Blob sourceBlob = storage.get(blobId); + if (sourceBlob == null) { + System.out.println("The object " + objectName + " wasn't found in " + bucketName); + return; + } - // See the StorageClass documentation for other valid storage classes: - // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/storage/StorageClass.html - StorageClass storageClass = StorageClass.COLDLINE; + // See the StorageClass documentation for other valid storage classes: + // https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/storage/StorageClass.html + StorageClass storageClass = StorageClass.COLDLINE; - // You can't change an object's storage class directly, the only way is to rewrite the object - // with the desired storage class + // You can't change an object's storage class directly, the only way is to rewrite the object + // with the desired storage class - BlobInfo targetBlob = BlobInfo.newBuilder(blobId).setStorageClass(storageClass).build(); + BlobInfo targetBlob = BlobInfo.newBuilder(blobId).setStorageClass(storageClass).build(); - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request to upload returns a 412 error if - // the object's generation number does not match your precondition. - Storage.BlobSourceOption precondition = - Storage.BlobSourceOption.generationMatch(sourceBlob.getGeneration()); + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request to upload returns a 412 error if + // the object's generation number does not match your precondition. + Storage.BlobSourceOption precondition = + Storage.BlobSourceOption.generationMatch(sourceBlob.getGeneration()); - Storage.CopyRequest request = - Storage.CopyRequest.newBuilder() - .setSource(blobId) - .setSourceOptions(precondition) // delete this line to run without preconditions - .setTarget(targetBlob) - .build(); - Blob updatedBlob = storage.copy(request).getResult(); + Storage.CopyRequest request = + Storage.CopyRequest.newBuilder() + .setSource(blobId) + .setSourceOptions(precondition) // delete this line to run without preconditions + .setTarget(targetBlob) + .build(); + Blob updatedBlob = storage.copy(request).getResult(); - System.out.println( - "Object " - + objectName - + " in bucket " - + bucketName - + " had its storage class set to " - + updatedBlob.getStorageClass().name()); + System.out.println( + "Object " + + objectName + + " in bucket " + + bucketName + + " had its storage class set to " + + updatedBlob.getStorageClass().name()); + } } } // [END storage_change_file_storage_class] diff --git a/samples/snippets/src/main/java/com/example/storage/object/ComposeObject.java b/samples/snippets/src/main/java/com/example/storage/object/ComposeObject.java index a1707ce26c..05ea349712 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/ComposeObject.java +++ b/samples/snippets/src/main/java/com/example/storage/object/ComposeObject.java @@ -28,7 +28,8 @@ public static void composeObject( String firstObjectName, String secondObjectName, String targetObjectName, - String projectId) { + String projectId) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -44,43 +45,45 @@ public static void composeObject( // The ID to give the new composite object // String targetObjectName = "new-composite-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request returns a 412 error if the - // preconditions are not met. - Storage.BlobTargetOption precondition; - if (storage.get(bucketName, targetObjectName) == null) { - // For a target object that does not yet exist, set the DoesNotExist precondition. - // This will cause the request to fail if the object is created before the request runs. - precondition = Storage.BlobTargetOption.doesNotExist(); - } else { - // If the destination already exists in your bucket, instead set a generation-match - // precondition. This will cause the request to fail if the existing object's generation - // changes before the request runs. - precondition = - Storage.BlobTargetOption.generationMatch( - storage.get(bucketName, targetObjectName).getGeneration()); - } + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request returns a 412 error if the + // preconditions are not met. + Storage.BlobTargetOption precondition; + if (storage.get(bucketName, targetObjectName) == null) { + // For a target object that does not yet exist, set the DoesNotExist precondition. + // This will cause the request to fail if the object is created before the request runs. + precondition = Storage.BlobTargetOption.doesNotExist(); + } else { + // If the destination already exists in your bucket, instead set a generation-match + // precondition. This will cause the request to fail if the existing object's generation + // changes before the request runs. + precondition = + Storage.BlobTargetOption.generationMatch( + storage.get(bucketName, targetObjectName).getGeneration()); + } - Storage.ComposeRequest composeRequest = - Storage.ComposeRequest.newBuilder() - // addSource takes varargs, so you can put as many objects here as you want, up to the - // max of 32 - .addSource(firstObjectName, secondObjectName) - .setTarget(BlobInfo.newBuilder(bucketName, targetObjectName).build()) - .setTargetOptions(precondition) - .build(); + Storage.ComposeRequest composeRequest = + Storage.ComposeRequest.newBuilder() + // addSource takes varargs, so you can put as many objects here as you want, up to the + // max of 32 + .addSource(firstObjectName, secondObjectName) + .setTarget(BlobInfo.newBuilder(bucketName, targetObjectName).build()) + .setTargetOptions(precondition) + .build(); - Blob compositeObject = storage.compose(composeRequest); + Blob compositeObject = storage.compose(composeRequest); - System.out.println( - "New composite object " - + compositeObject.getName() - + " was created by combining " - + firstObjectName - + " and " - + secondObjectName); + System.out.println( + "New composite object " + + compositeObject.getName() + + " was created by combining " + + firstObjectName + + " and " + + secondObjectName); + } } } // [END storage_compose_file] diff --git a/samples/snippets/src/main/java/com/example/storage/object/CopyDeleteObject.java b/samples/snippets/src/main/java/com/example/storage/object/CopyDeleteObject.java index 5caa756053..89016730b6 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/CopyDeleteObject.java +++ b/samples/snippets/src/main/java/com/example/storage/object/CopyDeleteObject.java @@ -30,7 +30,8 @@ public static void copyDeleteObject( String sourceBucketName, String sourceObjectName, String targetBucketName, - String targetObjectName) { + String targetObjectName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -46,43 +47,48 @@ public static void copyDeleteObject( // The ID of your GCS object // String targetObjectName = "your-new-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId source = BlobId.of(sourceBucketName, sourceObjectName); - BlobId target = BlobId.of(targetBucketName, targetObjectName); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId source = BlobId.of(sourceBucketName, sourceObjectName); + BlobId target = BlobId.of(targetBucketName, targetObjectName); - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request returns a 412 error if the - // preconditions are not met. - Storage.BlobTargetOption precondition; - BlobInfo existingTarget = storage.get(targetBucketName, targetObjectName); - if (existingTarget == null) { - // For a target object that does not yet exist, set the DoesNotExist precondition. - // This will cause the request to fail if the object is created before the request runs. - precondition = Storage.BlobTargetOption.doesNotExist(); - } else { - // If the destination already exists in your bucket, instead set a generation-match - // precondition. This will cause the request to fail if the existing object's generation - // changes before the request runs. - precondition = Storage.BlobTargetOption.generationMatch(existingTarget.getGeneration()); - } + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request returns a 412 error if the + // preconditions are not met. + Storage.BlobTargetOption precondition; + BlobInfo existingTarget = storage.get(targetBucketName, targetObjectName); + if (existingTarget == null) { + // For a target object that does not yet exist, set the DoesNotExist precondition. + // This will cause the request to fail if the object is created before the request runs. + precondition = Storage.BlobTargetOption.doesNotExist(); + } else { + // If the destination already exists in your bucket, instead set a generation-match + // precondition. This will cause the request to fail if the existing object's generation + // changes before the request runs. + precondition = Storage.BlobTargetOption.generationMatch(existingTarget.getGeneration()); + } - // Copy source object to target object - storage.copy( - Storage.CopyRequest.newBuilder().setSource(source).setTarget(target, precondition).build()); - Blob copiedObject = storage.get(target); - // Delete the original blob now that we've copied to where we want it, finishing the "move" - // operation - storage.get(source).delete(); + // Copy source object to target object + storage.copy( + Storage.CopyRequest.newBuilder() + .setSource(source) + .setTarget(target, precondition) + .build()); + Blob copiedObject = storage.get(target); + // Delete the original blob now that we've copied to where we want it, finishing the "move" + // operation + storage.get(source).delete(); - System.out.println( - "Moved object " - + sourceObjectName - + " from bucket " - + sourceBucketName - + " to " - + targetObjectName - + " in bucket " - + copiedObject.getBucket()); + System.out.println( + "Moved object " + + sourceObjectName + + " from bucket " + + sourceBucketName + + " to " + + targetObjectName + + " in bucket " + + copiedObject.getBucket()); + } } } // [END storage_move_file] diff --git a/samples/snippets/src/main/java/com/example/storage/object/CopyOldVersionOfObject.java b/samples/snippets/src/main/java/com/example/storage/object/CopyOldVersionOfObject.java index 0c227ad1ab..1bded6cd7c 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/CopyOldVersionOfObject.java +++ b/samples/snippets/src/main/java/com/example/storage/object/CopyOldVersionOfObject.java @@ -27,7 +27,8 @@ public static void copyOldVersionOfObject( String bucketName, String objectToCopy, long generationToCopy, - String newObjectName) { + String newObjectName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -43,41 +44,43 @@ public static void copyOldVersionOfObject( // What to name the new object with the old data from objectToCopy // String newObjectName = "your-new-object"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request returns a 412 error if the - // preconditions are not met. - Storage.BlobTargetOption precondition; - if (storage.get(bucketName, newObjectName) == null) { - // For a target object that does not yet exist, set the DoesNotExist precondition. - // This will cause the request to fail if the object is created before the request runs. - precondition = Storage.BlobTargetOption.doesNotExist(); - } else { - // If the destination already exists in your bucket, instead set a generation-match - // precondition. This will cause the request to fail if the existing object's generation - // changes before the request runs. - precondition = - Storage.BlobTargetOption.generationMatch( - storage.get(bucketName, newObjectName).getGeneration()); - } + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request returns a 412 error if the + // preconditions are not met. + Storage.BlobTargetOption precondition; + if (storage.get(bucketName, newObjectName) == null) { + // For a target object that does not yet exist, set the DoesNotExist precondition. + // This will cause the request to fail if the object is created before the request runs. + precondition = Storage.BlobTargetOption.doesNotExist(); + } else { + // If the destination already exists in your bucket, instead set a generation-match + // precondition. This will cause the request to fail if the existing object's generation + // changes before the request runs. + precondition = + Storage.BlobTargetOption.generationMatch( + storage.get(bucketName, newObjectName).getGeneration()); + } - Storage.CopyRequest copyRequest = - Storage.CopyRequest.newBuilder() - .setSource(BlobId.of(bucketName, objectToCopy, generationToCopy)) - .setTarget(BlobId.of(bucketName, newObjectName), precondition) - .build(); - storage.copy(copyRequest); + Storage.CopyRequest copyRequest = + Storage.CopyRequest.newBuilder() + .setSource(BlobId.of(bucketName, objectToCopy, generationToCopy)) + .setTarget(BlobId.of(bucketName, newObjectName), precondition) + .build(); + storage.copy(copyRequest); - System.out.println( - "Generation " - + generationToCopy - + " of object " - + objectToCopy - + " in bucket " - + bucketName - + " was copied to " - + newObjectName); + System.out.println( + "Generation " + + generationToCopy + + " of object " + + objectToCopy + + " in bucket " + + bucketName + + " was copied to " + + newObjectName); + } } } // [END storage_copy_file_archived_generation] diff --git a/samples/snippets/src/main/java/com/example/storage/object/DeleteObject.java b/samples/snippets/src/main/java/com/example/storage/object/DeleteObject.java index 3e8d7d331f..68d90f0a0f 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/DeleteObject.java +++ b/samples/snippets/src/main/java/com/example/storage/object/DeleteObject.java @@ -23,7 +23,8 @@ import com.google.cloud.storage.StorageOptions; public class DeleteObject { - public static void deleteObject(String projectId, String bucketName, String objectName) { + public static void deleteObject(String projectId, String bucketName, String objectName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -33,25 +34,28 @@ public static void deleteObject(String projectId, String bucketName, String obje // The ID of your GCS object // String objectName = "your-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Blob blob = storage.get(bucketName, objectName); - if (blob == null) { - System.out.println("The object " + objectName + " wasn't found in " + bucketName); - return; - } - BlobId idWithGeneration = blob.getBlobId(); - // Deletes the blob specified by its id. When the generation is present and non-null it will be - // specified in the request. - // If versioning is enabled on the bucket and the generation is present in the delete request, - // only the version of the object with the matching generation will be deleted. - // If instead you want to delete the current version, the generation should be dropped by - // performing the following. - // BlobId idWithoutGeneration = - // BlobId.of(idWithGeneration.getBucket(), idWithGeneration.getName()); - // storage.delete(idWithoutGeneration); - storage.delete(idWithGeneration); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Blob blob = storage.get(bucketName, objectName); + if (blob == null) { + System.out.println("The object " + objectName + " wasn't found in " + bucketName); + return; + } + BlobId idWithGeneration = blob.getBlobId(); + // Deletes the blob specified by its id. When the generation is present and non-null it will + // be + // specified in the request. + // If versioning is enabled on the bucket and the generation is present in the delete request, + // only the version of the object with the matching generation will be deleted. + // If instead you want to delete the current version, the generation should be dropped by + // performing the following. + // BlobId idWithoutGeneration = + // BlobId.of(idWithGeneration.getBucket(), idWithGeneration.getName()); + // storage.delete(idWithoutGeneration); + storage.delete(idWithGeneration); - System.out.println("Object " + objectName + " was permanently deleted from " + bucketName); + System.out.println("Object " + objectName + " was permanently deleted from " + bucketName); + } } } // [END storage_delete_file] diff --git a/samples/snippets/src/main/java/com/example/storage/object/DeleteOldVersionOfObject.java b/samples/snippets/src/main/java/com/example/storage/object/DeleteOldVersionOfObject.java index 5c0d6e1f7b..45195e5a45 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/DeleteOldVersionOfObject.java +++ b/samples/snippets/src/main/java/com/example/storage/object/DeleteOldVersionOfObject.java @@ -23,7 +23,8 @@ public class DeleteOldVersionOfObject { public static void deleteOldVersionOfObject( - String projectId, String bucketName, String objectName, long generationToDelete) { + String projectId, String bucketName, String objectName, long generationToDelete) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -36,16 +37,18 @@ public static void deleteOldVersionOfObject( // The generation of objectName to delete // long generationToDelete = 1579287380533984; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - storage.delete(BlobId.of(bucketName, objectName, generationToDelete)); - - System.out.println( - "Generation " - + generationToDelete - + " of object " - + objectName - + " was deleted from " - + bucketName); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + storage.delete(BlobId.of(bucketName, objectName, generationToDelete)); + + System.out.println( + "Generation " + + generationToDelete + + " of object " + + objectName + + " was deleted from " + + bucketName); + } } } // [END storage_delete_file_archived_generation] diff --git a/samples/snippets/src/main/java/com/example/storage/object/DownloadByteRange.java b/samples/snippets/src/main/java/com/example/storage/object/DownloadByteRange.java index e64bbb7c80..b9472b7cb2 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/DownloadByteRange.java +++ b/samples/snippets/src/main/java/com/example/storage/object/DownloadByteRange.java @@ -23,7 +23,6 @@ import com.google.cloud.storage.Storage; import com.google.cloud.storage.StorageOptions; import com.google.common.io.ByteStreams; -import java.io.IOException; import java.nio.channels.FileChannel; import java.nio.file.Paths; import java.nio.file.StandardOpenOption; @@ -37,7 +36,7 @@ public static void downloadByteRange( long startByte, long endBytes, String destFileName) - throws IOException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -56,18 +55,20 @@ public static void downloadByteRange( // The path to which the file should be downloaded // String destFileName = '/local/path/to/file.txt'; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId blobId = BlobId.of(bucketName, blobName); - try (ReadChannel from = storage.reader(blobId); - FileChannel to = FileChannel.open(Paths.get(destFileName), StandardOpenOption.WRITE)) { - from.seek(startByte); - from.limit(endBytes); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId blobId = BlobId.of(bucketName, blobName); + try (ReadChannel from = storage.reader(blobId); + FileChannel to = FileChannel.open(Paths.get(destFileName), StandardOpenOption.WRITE)) { + from.seek(startByte); + from.limit(endBytes); - ByteStreams.copy(from, to); + ByteStreams.copy(from, to); - System.out.printf( - "%s downloaded to %s from byte %d to byte %d%n", - blobId.toGsUtilUri(), destFileName, startByte, endBytes); + System.out.printf( + "%s downloaded to %s from byte %d to byte %d%n", + blobId.toGsUtilUri(), destFileName, startByte, endBytes); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/object/DownloadEncryptedObject.java b/samples/snippets/src/main/java/com/example/storage/object/DownloadEncryptedObject.java index 5fd72e75f1..9c7b5d1993 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/DownloadEncryptedObject.java +++ b/samples/snippets/src/main/java/com/example/storage/object/DownloadEncryptedObject.java @@ -21,7 +21,6 @@ import com.google.cloud.storage.Blob; import com.google.cloud.storage.Storage; import com.google.cloud.storage.StorageOptions; -import java.io.IOException; import java.nio.file.Path; public class DownloadEncryptedObject { @@ -31,7 +30,7 @@ public static void downloadEncryptedObject( String objectName, Path destFilePath, String decryptionKey) - throws IOException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -49,19 +48,21 @@ public static void downloadEncryptedObject( // the object // String decryptionKey = "TIbv/fjexq+VmtXzAlc63J4z5kFmWJ6NdAPQulQBT7g="; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - Blob blob = storage.get(bucketName, objectName); - blob.downloadTo(destFilePath, Blob.BlobSourceOption.decryptionKey(decryptionKey)); + Blob blob = storage.get(bucketName, objectName); + blob.downloadTo(destFilePath, Blob.BlobSourceOption.decryptionKey(decryptionKey)); - System.out.println( - "Downloaded object " - + objectName - + " from bucket name " - + bucketName - + " to " - + destFilePath - + " using customer-supplied encryption key"); + System.out.println( + "Downloaded object " + + objectName + + " from bucket name " + + bucketName + + " to " + + destFilePath + + " using customer-supplied encryption key"); + } } } // [END storage_download_encrypted_file] diff --git a/samples/snippets/src/main/java/com/example/storage/object/DownloadObjectIntoMemory.java b/samples/snippets/src/main/java/com/example/storage/object/DownloadObjectIntoMemory.java index 57d1efc72d..27f0b69c3d 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/DownloadObjectIntoMemory.java +++ b/samples/snippets/src/main/java/com/example/storage/object/DownloadObjectIntoMemory.java @@ -24,7 +24,7 @@ public class DownloadObjectIntoMemory { public static void downloadObjectIntoMemory( - String projectId, String bucketName, String objectName) { + String projectId, String bucketName, String objectName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -34,15 +34,17 @@ public static void downloadObjectIntoMemory( // The ID of your GCS object // String objectName = "your-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - byte[] content = storage.readAllBytes(bucketName, objectName); - System.out.println( - "The contents of " - + objectName - + " from bucket name " - + bucketName - + " are: " - + new String(content, StandardCharsets.UTF_8)); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + byte[] content = storage.readAllBytes(bucketName, objectName); + System.out.println( + "The contents of " + + objectName + + " from bucket name " + + bucketName + + " are: " + + new String(content, StandardCharsets.UTF_8)); + } } } // [END storage_file_download_into_memory] diff --git a/samples/snippets/src/main/java/com/example/storage/object/DownloadPublicObject.java b/samples/snippets/src/main/java/com/example/storage/object/DownloadPublicObject.java index feb966b1e0..c1fbef6c90 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/DownloadPublicObject.java +++ b/samples/snippets/src/main/java/com/example/storage/object/DownloadPublicObject.java @@ -25,7 +25,7 @@ public class DownloadPublicObject { public static void downloadPublicObject( - String bucketName, String publicObjectName, Path destFilePath) { + String bucketName, String publicObjectName, Path destFilePath) throws Exception { // The name of the bucket to access // String bucketName = "my-bucket"; @@ -36,17 +36,18 @@ public static void downloadPublicObject( // Path destFilePath = Paths.get("/local/path/to/file.txt"); // Instantiate an anonymous Google Cloud Storage client, which can only access public files - Storage storage = StorageOptions.getUnauthenticatedInstance().getService(); - - storage.downloadTo(BlobId.of(bucketName, publicObjectName), destFilePath); - - System.out.println( - "Downloaded public object " - + publicObjectName - + " from bucket name " - + bucketName - + " to " - + destFilePath); + try (Storage storage = StorageOptions.getUnauthenticatedInstance().getService()) { + + storage.downloadTo(BlobId.of(bucketName, publicObjectName), destFilePath); + + System.out.println( + "Downloaded public object " + + publicObjectName + + " from bucket name " + + bucketName + + " to " + + destFilePath); + } } } // [END storage_download_public_file] diff --git a/samples/snippets/src/main/java/com/example/storage/object/DownloadRequesterPaysObject.java b/samples/snippets/src/main/java/com/example/storage/object/DownloadRequesterPaysObject.java index 83d993853d..2c11d4100a 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/DownloadRequesterPaysObject.java +++ b/samples/snippets/src/main/java/com/example/storage/object/DownloadRequesterPaysObject.java @@ -26,7 +26,7 @@ public class DownloadRequesterPaysObject { public static void downloadRequesterPaysObject( - String projectId, String bucketName, String objectName, Path destFilePath) { + String projectId, String bucketName, String objectName, Path destFilePath) throws Exception { // The project ID to bill // String projectId = "my-billable-project-id"; @@ -39,14 +39,20 @@ public static void downloadRequesterPaysObject( // The path to which the file should be downloaded // Path destFilePath = Paths.get("/local/path/to/file.txt"); - Storage storage = StorageOptions.getDefaultInstance().getService(); - Blob blob = - storage.get( - BlobId.of(bucketName, objectName), Storage.BlobGetOption.userProject(projectId)); - blob.downloadTo(destFilePath, Blob.BlobSourceOption.userProject(projectId)); - - System.out.println( - "Object " + objectName + " downloaded to " + destFilePath + " and billed to " + projectId); + try (Storage storage = StorageOptions.getDefaultInstance().getService()) { + Blob blob = + storage.get( + BlobId.of(bucketName, objectName), Storage.BlobGetOption.userProject(projectId)); + blob.downloadTo(destFilePath, Blob.BlobSourceOption.userProject(projectId)); + + System.out.println( + "Object " + + objectName + + " downloaded to " + + destFilePath + + " and billed to " + + projectId); + } } } // [END storage_download_file_requester_pays] diff --git a/samples/snippets/src/main/java/com/example/storage/object/GenerateV4GetObjectSignedUrl.java b/samples/snippets/src/main/java/com/example/storage/object/GenerateV4GetObjectSignedUrl.java index eed58bcccf..9f41311a8e 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/GenerateV4GetObjectSignedUrl.java +++ b/samples/snippets/src/main/java/com/example/storage/object/GenerateV4GetObjectSignedUrl.java @@ -21,7 +21,6 @@ import com.google.cloud.storage.BlobId; import com.google.cloud.storage.BlobInfo; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import java.net.URL; import java.util.concurrent.TimeUnit; @@ -38,23 +37,25 @@ public class GenerateV4GetObjectSignedUrl { * details. */ public static void generateV4GetObjectSignedUrl( - String projectId, String bucketName, String objectName) throws StorageException { + String projectId, String bucketName, String objectName) throws Exception { // String projectId = "my-project-id"; // String bucketName = "my-bucket"; // String objectName = "my-object"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - // Define resource - BlobInfo blobInfo = BlobInfo.newBuilder(BlobId.of(bucketName, objectName)).build(); + // Define resource + BlobInfo blobInfo = BlobInfo.newBuilder(BlobId.of(bucketName, objectName)).build(); - URL url = - storage.signUrl(blobInfo, 15, TimeUnit.MINUTES, Storage.SignUrlOption.withV4Signature()); + URL url = + storage.signUrl(blobInfo, 15, TimeUnit.MINUTES, Storage.SignUrlOption.withV4Signature()); - System.out.println("Generated GET signed URL:"); - System.out.println(url); - System.out.println("You can use this URL with any user agent, for example:"); - System.out.println("curl '" + url + "'"); + System.out.println("Generated GET signed URL:"); + System.out.println(url); + System.out.println("You can use this URL with any user agent, for example:"); + System.out.println("curl '" + url + "'"); + } } } // [END storage_generate_signed_url_v4] diff --git a/samples/snippets/src/main/java/com/example/storage/object/GenerateV4PutObjectSignedUrl.java b/samples/snippets/src/main/java/com/example/storage/object/GenerateV4PutObjectSignedUrl.java index c51b96d01b..2d2c53fb7e 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/GenerateV4PutObjectSignedUrl.java +++ b/samples/snippets/src/main/java/com/example/storage/object/GenerateV4PutObjectSignedUrl.java @@ -22,7 +22,6 @@ import com.google.cloud.storage.BlobInfo; import com.google.cloud.storage.HttpMethod; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import java.net.URL; import java.util.HashMap; @@ -41,36 +40,38 @@ public class GenerateV4PutObjectSignedUrl { * details. */ public static void generateV4PutObjectSignedUrl( - String projectId, String bucketName, String objectName) throws StorageException { + String projectId, String bucketName, String objectName) throws Exception { // String projectId = "my-project-id"; // String bucketName = "my-bucket"; // String objectName = "my-object"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - // Define Resource - BlobInfo blobInfo = BlobInfo.newBuilder(BlobId.of(bucketName, objectName)).build(); + // Define Resource + BlobInfo blobInfo = BlobInfo.newBuilder(BlobId.of(bucketName, objectName)).build(); - // Generate Signed URL - Map extensionHeaders = new HashMap<>(); - extensionHeaders.put("Content-Type", "application/octet-stream"); + // Generate Signed URL + Map extensionHeaders = new HashMap<>(); + extensionHeaders.put("Content-Type", "application/octet-stream"); - URL url = - storage.signUrl( - blobInfo, - 15, - TimeUnit.MINUTES, - Storage.SignUrlOption.httpMethod(HttpMethod.PUT), - Storage.SignUrlOption.withExtHeaders(extensionHeaders), - Storage.SignUrlOption.withV4Signature()); + URL url = + storage.signUrl( + blobInfo, + 15, + TimeUnit.MINUTES, + Storage.SignUrlOption.httpMethod(HttpMethod.PUT), + Storage.SignUrlOption.withExtHeaders(extensionHeaders), + Storage.SignUrlOption.withV4Signature()); - System.out.println("Generated PUT signed URL:"); - System.out.println(url); - System.out.println("You can use this URL with any user agent, for example:"); - System.out.println( - "curl -X PUT -H 'Content-Type: application/octet-stream' --upload-file my-file '" - + url - + "'"); + System.out.println("Generated PUT signed URL:"); + System.out.println(url); + System.out.println("You can use this URL with any user agent, for example:"); + System.out.println( + "curl -X PUT -H 'Content-Type: application/octet-stream' --upload-file my-file '" + + url + + "'"); + } } } // [END storage_generate_upload_signed_url_v4] diff --git a/samples/snippets/src/main/java/com/example/storage/object/GetObjectMetadata.java b/samples/snippets/src/main/java/com/example/storage/object/GetObjectMetadata.java index 4b6eb42ecc..e70897d04c 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/GetObjectMetadata.java +++ b/samples/snippets/src/main/java/com/example/storage/object/GetObjectMetadata.java @@ -20,14 +20,13 @@ import com.google.cloud.storage.Blob; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; import java.util.Date; import java.util.Map; public class GetObjectMetadata { public static void getObjectMetadata(String projectId, String bucketName, String blobName) - throws StorageException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -37,50 +36,54 @@ public static void getObjectMetadata(String projectId, String bucketName, String // The ID of your GCS object // String objectName = "your-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - // Select all fields - // Fields can be selected individually e.g. Storage.BlobField.CACHE_CONTROL - Blob blob = - storage.get(bucketName, blobName, Storage.BlobGetOption.fields(Storage.BlobField.values())); + // Select all fields + // Fields can be selected individually e.g. Storage.BlobField.CACHE_CONTROL + Blob blob = + storage.get( + bucketName, blobName, Storage.BlobGetOption.fields(Storage.BlobField.values())); - // Print blob metadata - System.out.println("Bucket: " + blob.getBucket()); - System.out.println("CacheControl: " + blob.getCacheControl()); - System.out.println("ComponentCount: " + blob.getComponentCount()); - System.out.println("ContentDisposition: " + blob.getContentDisposition()); - System.out.println("ContentEncoding: " + blob.getContentEncoding()); - System.out.println("ContentLanguage: " + blob.getContentLanguage()); - System.out.println("ContentType: " + blob.getContentType()); - System.out.println("CustomTime: " + blob.getCustomTime()); - System.out.println("Crc32c: " + blob.getCrc32c()); - System.out.println("Crc32cHexString: " + blob.getCrc32cToHexString()); - System.out.println("ETag: " + blob.getEtag()); - System.out.println("Generation: " + blob.getGeneration()); - System.out.println("Id: " + blob.getBlobId()); - System.out.println("KmsKeyName: " + blob.getKmsKeyName()); - System.out.println("Md5Hash: " + blob.getMd5()); - System.out.println("Md5HexString: " + blob.getMd5ToHexString()); - System.out.println("MediaLink: " + blob.getMediaLink()); - System.out.println("Metageneration: " + blob.getMetageneration()); - System.out.println("Name: " + blob.getName()); - System.out.println("Size: " + blob.getSize()); - System.out.println("StorageClass: " + blob.getStorageClass()); - System.out.println("TimeCreated: " + new Date(blob.getCreateTime())); - System.out.println("Last Metadata Update: " + new Date(blob.getUpdateTime())); - System.out.println("Object Retention Policy: " + blob.getRetention()); - Boolean temporaryHoldIsEnabled = (blob.getTemporaryHold() != null && blob.getTemporaryHold()); - System.out.println("temporaryHold: " + (temporaryHoldIsEnabled ? "enabled" : "disabled")); - Boolean eventBasedHoldIsEnabled = - (blob.getEventBasedHold() != null && blob.getEventBasedHold()); - System.out.println("eventBasedHold: " + (eventBasedHoldIsEnabled ? "enabled" : "disabled")); - if (blob.getRetentionExpirationTime() != null) { - System.out.println("retentionExpirationTime: " + new Date(blob.getRetentionExpirationTime())); - } - if (blob.getMetadata() != null) { - System.out.println("\n\n\nUser metadata:"); - for (Map.Entry userMetadata : blob.getMetadata().entrySet()) { - System.out.println(userMetadata.getKey() + "=" + userMetadata.getValue()); + // Print blob metadata + System.out.println("Bucket: " + blob.getBucket()); + System.out.println("CacheControl: " + blob.getCacheControl()); + System.out.println("ComponentCount: " + blob.getComponentCount()); + System.out.println("ContentDisposition: " + blob.getContentDisposition()); + System.out.println("ContentEncoding: " + blob.getContentEncoding()); + System.out.println("ContentLanguage: " + blob.getContentLanguage()); + System.out.println("ContentType: " + blob.getContentType()); + System.out.println("CustomTime: " + blob.getCustomTime()); + System.out.println("Crc32c: " + blob.getCrc32c()); + System.out.println("Crc32cHexString: " + blob.getCrc32cToHexString()); + System.out.println("ETag: " + blob.getEtag()); + System.out.println("Generation: " + blob.getGeneration()); + System.out.println("Id: " + blob.getBlobId()); + System.out.println("KmsKeyName: " + blob.getKmsKeyName()); + System.out.println("Md5Hash: " + blob.getMd5()); + System.out.println("Md5HexString: " + blob.getMd5ToHexString()); + System.out.println("MediaLink: " + blob.getMediaLink()); + System.out.println("Metageneration: " + blob.getMetageneration()); + System.out.println("Name: " + blob.getName()); + System.out.println("Size: " + blob.getSize()); + System.out.println("StorageClass: " + blob.getStorageClass()); + System.out.println("TimeCreated: " + new Date(blob.getCreateTime())); + System.out.println("Last Metadata Update: " + new Date(blob.getUpdateTime())); + System.out.println("Object Retention Policy: " + blob.getRetention()); + Boolean temporaryHoldIsEnabled = (blob.getTemporaryHold() != null && blob.getTemporaryHold()); + System.out.println("temporaryHold: " + (temporaryHoldIsEnabled ? "enabled" : "disabled")); + Boolean eventBasedHoldIsEnabled = + (blob.getEventBasedHold() != null && blob.getEventBasedHold()); + System.out.println("eventBasedHold: " + (eventBasedHoldIsEnabled ? "enabled" : "disabled")); + if (blob.getRetentionExpirationTime() != null) { + System.out.println( + "retentionExpirationTime: " + new Date(blob.getRetentionExpirationTime())); + } + if (blob.getMetadata() != null) { + System.out.println("\n\n\nUser metadata:"); + for (Map.Entry userMetadata : blob.getMetadata().entrySet()) { + System.out.println(userMetadata.getKey() + "=" + userMetadata.getValue()); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/object/ListObjects.java b/samples/snippets/src/main/java/com/example/storage/object/ListObjects.java index c9eebfafe2..85629af52d 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/ListObjects.java +++ b/samples/snippets/src/main/java/com/example/storage/object/ListObjects.java @@ -23,18 +23,20 @@ import com.google.cloud.storage.StorageOptions; public class ListObjects { - public static void listObjects(String projectId, String bucketName) { + public static void listObjects(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Page blobs = storage.list(bucketName); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Page blobs = storage.list(bucketName); - for (Blob blob : blobs.iterateAll()) { - System.out.println(blob.getName()); + for (Blob blob : blobs.iterateAll()) { + System.out.println(blob.getName()); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/object/ListObjectsWithOldVersions.java b/samples/snippets/src/main/java/com/example/storage/object/ListObjectsWithOldVersions.java index 093942c7fd..d6ba3d81a3 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/ListObjectsWithOldVersions.java +++ b/samples/snippets/src/main/java/com/example/storage/object/ListObjectsWithOldVersions.java @@ -24,18 +24,21 @@ import com.google.cloud.storage.StorageOptions; public class ListObjectsWithOldVersions { - public static void listObjectsWithOldVersions(String projectId, String bucketName) { + public static void listObjectsWithOldVersions(String projectId, String bucketName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Bucket bucket = storage.get(bucketName); - Page blobs = bucket.list(Storage.BlobListOption.versions(true)); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Bucket bucket = storage.get(bucketName); + Page blobs = bucket.list(Storage.BlobListOption.versions(true)); - for (Blob blob : blobs.iterateAll()) { - System.out.println(blob.getName() + "," + blob.getGeneration()); + for (Blob blob : blobs.iterateAll()) { + System.out.println(blob.getName() + "," + blob.getGeneration()); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/object/ListObjectsWithPrefix.java b/samples/snippets/src/main/java/com/example/storage/object/ListObjectsWithPrefix.java index 3a9f564a9c..9bb0f07e88 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/ListObjectsWithPrefix.java +++ b/samples/snippets/src/main/java/com/example/storage/object/ListObjectsWithPrefix.java @@ -24,7 +24,7 @@ public class ListObjectsWithPrefix { public static void listObjectsWithPrefix( - String projectId, String bucketName, String directoryPrefix) { + String projectId, String bucketName, String directoryPrefix) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -34,35 +34,38 @@ public static void listObjectsWithPrefix( // The directory prefix to search for // String directoryPrefix = "myDirectory/" - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - /** - * Using the Storage.BlobListOption.currentDirectory() option here causes the results to display - * in a "directory-like" mode, showing what objects are in the directory you've specified, as - * well as what other directories exist in that directory. For example, given these blobs: - * - *

a/1.txt a/b/2.txt a/b/3.txt - * - *

If you specify prefix = "a/" and don't use Storage.BlobListOption.currentDirectory(), - * you'll get back: - * - *

a/1.txt a/b/2.txt a/b/3.txt - * - *

However, if you specify prefix = "a/" and do use - * Storage.BlobListOption.currentDirectory(), you'll get back: - * - *

a/1.txt a/b/ - * - *

Because a/1.txt is the only file in the a/ directory and a/b/ is a directory inside the - * /a/ directory. - */ - Page blobs = - storage.list( - bucketName, - Storage.BlobListOption.prefix(directoryPrefix), - Storage.BlobListOption.currentDirectory()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + /** + * Using the Storage.BlobListOption.currentDirectory() option here causes the results to + * display in a "directory-like" mode, showing what objects are in the directory you've + * specified, as well as what other directories exist in that directory. For example, given + * these blobs: + * + *

a/1.txt a/b/2.txt a/b/3.txt + * + *

If you specify prefix = "a/" and don't use Storage.BlobListOption.currentDirectory(), + * you'll get back: + * + *

a/1.txt a/b/2.txt a/b/3.txt + * + *

However, if you specify prefix = "a/" and do use + * Storage.BlobListOption.currentDirectory(), you'll get back: + * + *

a/1.txt a/b/ + * + *

Because a/1.txt is the only file in the a/ directory and a/b/ is a directory inside the + * /a/ directory. + */ + Page blobs = + storage.list( + bucketName, + Storage.BlobListOption.prefix(directoryPrefix), + Storage.BlobListOption.currentDirectory()); - for (Blob blob : blobs.iterateAll()) { - System.out.println(blob.getName()); + for (Blob blob : blobs.iterateAll()) { + System.out.println(blob.getName()); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/object/ListSoftDeletedObjects.java b/samples/snippets/src/main/java/com/example/storage/object/ListSoftDeletedObjects.java index eb3b5d158b..9f5130cad6 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/ListSoftDeletedObjects.java +++ b/samples/snippets/src/main/java/com/example/storage/object/ListSoftDeletedObjects.java @@ -23,18 +23,20 @@ import com.google.cloud.storage.StorageOptions; public class ListSoftDeletedObjects { - public static void listSoftDeletedObjects(String projectId, String bucketName) { + public static void listSoftDeletedObjects(String projectId, String bucketName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; // The ID of your GCS bucket // String bucketName = "your-unique-bucket-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Page blobs = storage.list(bucketName, Storage.BlobListOption.softDeleted(true)); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Page blobs = storage.list(bucketName, Storage.BlobListOption.softDeleted(true)); - for (Blob blob : blobs.iterateAll()) { - System.out.println(blob.getName()); + for (Blob blob : blobs.iterateAll()) { + System.out.println(blob.getName()); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/object/ListSoftDeletedVersionsOfObject.java b/samples/snippets/src/main/java/com/example/storage/object/ListSoftDeletedVersionsOfObject.java index 87532cdc8e..950f8b1464 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/ListSoftDeletedVersionsOfObject.java +++ b/samples/snippets/src/main/java/com/example/storage/object/ListSoftDeletedVersionsOfObject.java @@ -25,7 +25,7 @@ public class ListSoftDeletedVersionsOfObject { public static void listSoftDeletedVersionOfObject( - String projectId, String bucketName, String objectName) { + String projectId, String bucketName, String objectName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -35,16 +35,18 @@ public static void listSoftDeletedVersionOfObject( // The name of your GCS object // String objectName = "your-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Page blobs = - storage.list( - bucketName, - Storage.BlobListOption.softDeleted(true), - // See https://cloud.google.com/storage/docs/json_api/v1/objects/list#matchGlob - Storage.BlobListOption.matchGlob(objectName)); - - for (Blob blob : blobs.iterateAll()) { - System.out.println(blob.getName()); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Page blobs = + storage.list( + bucketName, + Storage.BlobListOption.softDeleted(true), + // See https://cloud.google.com/storage/docs/json_api/v1/objects/list#matchGlob + Storage.BlobListOption.matchGlob(objectName)); + + for (Blob blob : blobs.iterateAll()) { + System.out.println(blob.getName()); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/object/MakeObjectPublic.java b/samples/snippets/src/main/java/com/example/storage/object/MakeObjectPublic.java index 245c030a6b..7ac041c81e 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/MakeObjectPublic.java +++ b/samples/snippets/src/main/java/com/example/storage/object/MakeObjectPublic.java @@ -23,16 +23,19 @@ import com.google.cloud.storage.StorageOptions; public class MakeObjectPublic { - public static void makeObjectPublic(String projectId, String bucketName, String objectName) { + public static void makeObjectPublic(String projectId, String bucketName, String objectName) + throws Exception { // String projectId = "your-project-id"; // String bucketName = "your-bucket-name"; // String objectName = "your-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId blobId = BlobId.of(bucketName, objectName); - storage.createAcl(blobId, Acl.of(Acl.User.ofAllUsers(), Acl.Role.READER)); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId blobId = BlobId.of(bucketName, objectName); + storage.createAcl(blobId, Acl.of(Acl.User.ofAllUsers(), Acl.Role.READER)); - System.out.println( - "Object " + objectName + " in bucket " + bucketName + " was made publicly readable"); + System.out.println( + "Object " + objectName + " in bucket " + bucketName + " was made publicly readable"); + } } } // [END storage_make_public] diff --git a/samples/snippets/src/main/java/com/example/storage/object/PrintBlobAcl.java b/samples/snippets/src/main/java/com/example/storage/object/PrintBlobAcl.java index 34089a56f9..f5434ea201 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/PrintBlobAcl.java +++ b/samples/snippets/src/main/java/com/example/storage/object/PrintBlobAcl.java @@ -27,7 +27,7 @@ public class PrintBlobAcl { - public static void printBlobAcl(String bucketName, String blobName) { + public static void printBlobAcl(String bucketName, String blobName) throws Exception { // The ID to give your GCS bucket // String bucketName = "your-unique-bucket-name"; @@ -35,21 +35,22 @@ public static void printBlobAcl(String bucketName, String blobName) { // The name of the blob/file that you wish to view Acls of // String blobName = "your-blob-name"; - Storage storage = StorageOptions.newBuilder().build().getService(); - Blob blob = storage.get(BlobId.of(bucketName, blobName)); - List blobAcls = blob.getAcl(); + try (Storage storage = StorageOptions.newBuilder().build().getService()) { + Blob blob = storage.get(BlobId.of(bucketName, blobName)); + List blobAcls = blob.getAcl(); - for (Acl acl : blobAcls) { + for (Acl acl : blobAcls) { - // This will give you the role. - // See https://cloud.google.com/storage/docs/access-control/lists#permissions - String role = acl.getRole().name(); + // This will give you the role. + // See https://cloud.google.com/storage/docs/access-control/lists#permissions + String role = acl.getRole().name(); - // This will give you the Entity type (i.e. User, Group, Project etc.) - // See https://cloud.google.com/storage/docs/access-control/lists#scopes - String entityType = acl.getEntity().getType().name(); + // This will give you the Entity type (i.e. User, Group, Project etc.) + // See https://cloud.google.com/storage/docs/access-control/lists#scopes + String entityType = acl.getEntity().getType().name(); - System.out.printf("%s: %s %n", role, entityType); + System.out.printf("%s: %s %n", role, entityType); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/object/ReleaseEventBasedHold.java b/samples/snippets/src/main/java/com/example/storage/object/ReleaseEventBasedHold.java index 6ce3e13379..01c9f73a09 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/ReleaseEventBasedHold.java +++ b/samples/snippets/src/main/java/com/example/storage/object/ReleaseEventBasedHold.java @@ -21,12 +21,11 @@ import com.google.cloud.storage.Blob; import com.google.cloud.storage.BlobId; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class ReleaseEventBasedHold { public static void releaseEventBasedHold(String projectId, String bucketName, String objectName) - throws StorageException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -36,22 +35,24 @@ public static void releaseEventBasedHold(String projectId, String bucketName, St // The ID of your GCS object // String objectName = "your-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId blobId = BlobId.of(bucketName, objectName); - Blob blob = storage.get(blobId); - if (blob == null) { - System.out.println("The object " + objectName + " was not found in " + bucketName); - return; - } + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId blobId = BlobId.of(bucketName, objectName); + Blob blob = storage.get(blobId); + if (blob == null) { + System.out.println("The object " + objectName + " was not found in " + bucketName); + return; + } - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request to upload returns a 412 error if - // the object's generation number does not match your precondition. - Storage.BlobTargetOption precondition = Storage.BlobTargetOption.generationMatch(); + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request to upload returns a 412 error if + // the object's generation number does not match your precondition. + Storage.BlobTargetOption precondition = Storage.BlobTargetOption.generationMatch(); - blob.toBuilder().setEventBasedHold(false).build().update(precondition); + blob.toBuilder().setEventBasedHold(false).build().update(precondition); - System.out.println("Event-based hold was released for " + objectName); + System.out.println("Event-based hold was released for " + objectName); + } } } // [END storage_release_event_based_hold] diff --git a/samples/snippets/src/main/java/com/example/storage/object/ReleaseTemporaryHold.java b/samples/snippets/src/main/java/com/example/storage/object/ReleaseTemporaryHold.java index eae54db368..6d055661e4 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/ReleaseTemporaryHold.java +++ b/samples/snippets/src/main/java/com/example/storage/object/ReleaseTemporaryHold.java @@ -21,12 +21,11 @@ import com.google.cloud.storage.Blob; import com.google.cloud.storage.BlobId; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class ReleaseTemporaryHold { public static void releaseTemporaryHold(String projectId, String bucketName, String objectName) - throws StorageException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -36,23 +35,25 @@ public static void releaseTemporaryHold(String projectId, String bucketName, Str // The ID of your GCS object // String objectName = "your-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { - BlobId blobId = BlobId.of(bucketName, objectName); - Blob blob = storage.get(blobId); - if (blob == null) { - System.out.println("The object " + objectName + " was not found in " + bucketName); - return; - } + BlobId blobId = BlobId.of(bucketName, objectName); + Blob blob = storage.get(blobId); + if (blob == null) { + System.out.println("The object " + objectName + " was not found in " + bucketName); + return; + } - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request to upload returns a 412 error if - // the object's generation number does not match your precondition. - Storage.BlobTargetOption precondition = Storage.BlobTargetOption.generationMatch(); + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request to upload returns a 412 error if + // the object's generation number does not match your precondition. + Storage.BlobTargetOption precondition = Storage.BlobTargetOption.generationMatch(); - blob.toBuilder().setTemporaryHold(false).build().update(precondition); + blob.toBuilder().setTemporaryHold(false).build().update(precondition); - System.out.println("Temporary hold was released for " + objectName); + System.out.println("Temporary hold was released for " + objectName); + } } } // [END storage_release_temporary_hold] diff --git a/samples/snippets/src/main/java/com/example/storage/object/RemoveBlobOwner.java b/samples/snippets/src/main/java/com/example/storage/object/RemoveBlobOwner.java index ecbb0e41df..d8a8f37224 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/RemoveBlobOwner.java +++ b/samples/snippets/src/main/java/com/example/storage/object/RemoveBlobOwner.java @@ -27,7 +27,7 @@ public class RemoveBlobOwner { public static void removeBlobOwner( - String projectId, String bucketName, String userEmail, String blobName) { + String projectId, String bucketName, String userEmail, String blobName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -40,21 +40,23 @@ public static void removeBlobOwner( // The name of the blob/file that you wish to modify permissions on // String blobName = "your-blob-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Blob blob = storage.get(BlobId.of(bucketName, blobName)); - User ownerToRemove = new User(userEmail); - - boolean success = blob.deleteAcl(ownerToRemove); - if (success) { - System.out.println( - "Removed user " - + userEmail - + " as an owner on file " - + blobName - + " in bucket " - + bucketName); - } else { - System.out.println("User " + userEmail + " was not found"); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Blob blob = storage.get(BlobId.of(bucketName, blobName)); + User ownerToRemove = new User(userEmail); + + boolean success = blob.deleteAcl(ownerToRemove); + if (success) { + System.out.println( + "Removed user " + + userEmail + + " as an owner on file " + + blobName + + " in bucket " + + bucketName); + } else { + System.out.println("User " + userEmail + " was not found"); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/object/RestoreSoftDeletedObject.java b/samples/snippets/src/main/java/com/example/storage/object/RestoreSoftDeletedObject.java index 86f09a39ec..809999981b 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/RestoreSoftDeletedObject.java +++ b/samples/snippets/src/main/java/com/example/storage/object/RestoreSoftDeletedObject.java @@ -24,7 +24,7 @@ public class RestoreSoftDeletedObject { public static void restoreSoftDeletedObject( - String projectId, String bucketName, String objectName, long generation) { + String projectId, String bucketName, String objectName, long generation) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -34,10 +34,12 @@ public static void restoreSoftDeletedObject( // The name of your GCS object // String objectName = "your-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Blob blob = storage.restore(BlobId.of(bucketName, objectName, generation)); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Blob blob = storage.restore(BlobId.of(bucketName, objectName, generation)); - System.out.println("Restored previously soft-deleted object " + blob.getName()); + System.out.println("Restored previously soft-deleted object " + blob.getName()); + } } } // [END storage_restore_object] diff --git a/samples/snippets/src/main/java/com/example/storage/object/RotateObjectEncryptionKey.java b/samples/snippets/src/main/java/com/example/storage/object/RotateObjectEncryptionKey.java index 3fbd8c5e56..b60ca694b4 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/RotateObjectEncryptionKey.java +++ b/samples/snippets/src/main/java/com/example/storage/object/RotateObjectEncryptionKey.java @@ -28,7 +28,8 @@ public static void rotateObjectEncryptionKey( String bucketName, String objectName, String oldEncryptionKey, - String newEncryptionKey) { + String newEncryptionKey) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -47,32 +48,35 @@ public static void rotateObjectEncryptionKey( // The new encryption key to use // String newEncryptionKey = "0mMWhFvQOdS4AmxRpo8SJxXn5MjFhbz7DkKBUdUIef8=" - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId blobId = BlobId.of(bucketName, objectName); - Blob blob = storage.get(blobId); - if (blob == null) { - System.out.println("The object " + objectName + " wasn't found in " + bucketName); - return; - } + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId blobId = BlobId.of(bucketName, objectName); + Blob blob = storage.get(blobId); + if (blob == null) { + System.out.println("The object " + objectName + " wasn't found in " + bucketName); + return; + } - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request to upload returns a 412 error if - // the object's generation number does not match your precondition. - Storage.BlobSourceOption precondition = - Storage.BlobSourceOption.generationMatch(blob.getGeneration()); + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request to upload returns a 412 error if + // the object's generation number does not match your precondition. + Storage.BlobSourceOption precondition = + Storage.BlobSourceOption.generationMatch(blob.getGeneration()); - // You can't change an object's encryption key directly, the only way is to overwrite the object - Storage.CopyRequest request = - Storage.CopyRequest.newBuilder() - .setSource(blobId) - .setSourceOptions( - Storage.BlobSourceOption.decryptionKey(oldEncryptionKey), precondition) - .setTarget(blobId, Storage.BlobTargetOption.encryptionKey(newEncryptionKey)) - .build(); - storage.copy(request); + // You can't change an object's encryption key directly, the only way is to overwrite the + // object + Storage.CopyRequest request = + Storage.CopyRequest.newBuilder() + .setSource(blobId) + .setSourceOptions( + Storage.BlobSourceOption.decryptionKey(oldEncryptionKey), precondition) + .setTarget(blobId, Storage.BlobTargetOption.encryptionKey(newEncryptionKey)) + .build(); + storage.copy(request); - System.out.println( - "Rotated encryption key for object " + objectName + "in bucket " + bucketName); + System.out.println( + "Rotated encryption key for object " + objectName + "in bucket " + bucketName); + } } } // [END storage_rotate_encryption_key] diff --git a/samples/snippets/src/main/java/com/example/storage/object/SetEventBasedHold.java b/samples/snippets/src/main/java/com/example/storage/object/SetEventBasedHold.java index c0f8f088d4..d5177fbb22 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/SetEventBasedHold.java +++ b/samples/snippets/src/main/java/com/example/storage/object/SetEventBasedHold.java @@ -21,12 +21,11 @@ import com.google.cloud.storage.Blob; import com.google.cloud.storage.BlobId; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class SetEventBasedHold { public static void setEventBasedHold(String projectId, String bucketName, String objectName) - throws StorageException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -36,22 +35,24 @@ public static void setEventBasedHold(String projectId, String bucketName, String // The ID of your GCS object // String objectName = "your-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId blobId = BlobId.of(bucketName, objectName); - Blob blob = storage.get(blobId); - if (blob == null) { - System.out.println("The object " + objectName + " was not found in " + bucketName); - return; - } + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId blobId = BlobId.of(bucketName, objectName); + Blob blob = storage.get(blobId); + if (blob == null) { + System.out.println("The object " + objectName + " was not found in " + bucketName); + return; + } - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request to upload returns a 412 error if - // the object's generation number does not match your precondition. - Storage.BlobTargetOption precondition = Storage.BlobTargetOption.generationMatch(); + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request to upload returns a 412 error if + // the object's generation number does not match your precondition. + Storage.BlobTargetOption precondition = Storage.BlobTargetOption.generationMatch(); - blob.toBuilder().setEventBasedHold(true).build().update(precondition); + blob.toBuilder().setEventBasedHold(true).build().update(precondition); - System.out.println("Event-based hold was set for " + objectName); + System.out.println("Event-based hold was set for " + objectName); + } } } // [END storage_set_event_based_hold] diff --git a/samples/snippets/src/main/java/com/example/storage/object/SetObjectMetadata.java b/samples/snippets/src/main/java/com/example/storage/object/SetObjectMetadata.java index ae05011e8e..1442ea72fb 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/SetObjectMetadata.java +++ b/samples/snippets/src/main/java/com/example/storage/object/SetObjectMetadata.java @@ -27,7 +27,8 @@ import java.util.Map; public class SetObjectMetadata { - public static void setObjectMetadata(String projectId, String bucketName, String objectName) { + public static void setObjectMetadata(String projectId, String bucketName, String objectName) + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -37,28 +38,31 @@ public static void setObjectMetadata(String projectId, String bucketName, String // The ID of your GCS object // String objectName = "your-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - Map newMetadata = new HashMap<>(); - newMetadata.put("keyToAddOrUpdate", "value"); - BlobId blobId = BlobId.of(bucketName, objectName); - Blob blob = storage.get(blobId); - if (blob == null) { - System.out.println("The object " + objectName + " was not found in " + bucketName); - return; - } + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + Map newMetadata = new HashMap<>(); + newMetadata.put("keyToAddOrUpdate", "value"); + BlobId blobId = BlobId.of(bucketName, objectName); + Blob blob = storage.get(blobId); + if (blob == null) { + System.out.println("The object " + objectName + " was not found in " + bucketName); + return; + } - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request to upload returns a 412 error if - // the object's generation number does not match your precondition. - Storage.BlobTargetOption precondition = Storage.BlobTargetOption.generationMatch(); + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request to upload returns a 412 error if + // the object's generation number does not match your precondition. + Storage.BlobTargetOption precondition = Storage.BlobTargetOption.generationMatch(); - // Does an upsert operation, if the key already exists it's replaced by the new value, otherwise - // it's added. - BlobInfo pendingUpdate = blob.toBuilder().setMetadata(newMetadata).build(); - storage.update(pendingUpdate, precondition); + // Does an upsert operation, if the key already exists it's replaced by the new value, + // otherwise + // it's added. + BlobInfo pendingUpdate = blob.toBuilder().setMetadata(newMetadata).build(); + storage.update(pendingUpdate, precondition); - System.out.println( - "Updated custom metadata for object " + objectName + " in bucket " + bucketName); + System.out.println( + "Updated custom metadata for object " + objectName + " in bucket " + bucketName); + } } } // [END storage_set_metadata] diff --git a/samples/snippets/src/main/java/com/example/storage/object/SetObjectRetentionPolicy.java b/samples/snippets/src/main/java/com/example/storage/object/SetObjectRetentionPolicy.java index 6903445af0..a14c5e5652 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/SetObjectRetentionPolicy.java +++ b/samples/snippets/src/main/java/com/example/storage/object/SetObjectRetentionPolicy.java @@ -24,12 +24,11 @@ import com.google.cloud.storage.BlobId; import com.google.cloud.storage.BlobInfo.Retention; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class SetObjectRetentionPolicy { public static void setObjectRetentionPolicy( - String projectId, String bucketName, String objectName) throws StorageException { + String projectId, String bucketName, String objectName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -39,36 +38,38 @@ public static void setObjectRetentionPolicy( // The ID of your GCS object // String objectName = "your-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId blobId = BlobId.of(bucketName, objectName); - Blob blob = storage.get(blobId); - if (blob == null) { - System.out.println("The object " + objectName + " was not found in " + bucketName); - return; - } + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId blobId = BlobId.of(bucketName, objectName); + Blob blob = storage.get(blobId); + if (blob == null) { + System.out.println("The object " + objectName + " was not found in " + bucketName); + return; + } - Blob updated = - blob.toBuilder() - .setRetention( - Retention.newBuilder() - .setMode(Retention.Mode.UNLOCKED) - .setRetainUntilTime(now().plusDays(10)) - .build()) - .build() - .update(); + Blob updated = + blob.toBuilder() + .setRetention( + Retention.newBuilder() + .setMode(Retention.Mode.UNLOCKED) + .setRetainUntilTime(now().plusDays(10)) + .build()) + .build() + .update(); - System.out.println("Retention policy for object " + objectName + " was set to:"); - System.out.println(updated.getRetention().toString()); + System.out.println("Retention policy for object " + objectName + " was set to:"); + System.out.println(updated.getRetention().toString()); - // To modify an existing policy on an Unlocked object, pass in the override parameter - blob.toBuilder() - .setRetention( - updated.getRetention().toBuilder().setRetainUntilTime(now().plusDays(9)).build()) - .build() - .update(Storage.BlobTargetOption.overrideUnlockedRetention(true)); + // To modify an existing policy on an Unlocked object, pass in the override parameter + blob.toBuilder() + .setRetention( + updated.getRetention().toBuilder().setRetainUntilTime(now().plusDays(9)).build()) + .build() + .update(Storage.BlobTargetOption.overrideUnlockedRetention(true)); - System.out.println("Retention policy for object " + objectName + " was updated to:"); - System.out.println(storage.get(blobId).getRetention().toString()); + System.out.println("Retention policy for object " + objectName + " was updated to:"); + System.out.println(storage.get(blobId).getRetention().toString()); + } } } diff --git a/samples/snippets/src/main/java/com/example/storage/object/SetTemporaryHold.java b/samples/snippets/src/main/java/com/example/storage/object/SetTemporaryHold.java index c22de2f390..f9d54347ad 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/SetTemporaryHold.java +++ b/samples/snippets/src/main/java/com/example/storage/object/SetTemporaryHold.java @@ -21,12 +21,11 @@ import com.google.cloud.storage.Blob; import com.google.cloud.storage.BlobId; import com.google.cloud.storage.Storage; -import com.google.cloud.storage.StorageException; import com.google.cloud.storage.StorageOptions; public class SetTemporaryHold { public static void setTemporaryHold(String projectId, String bucketName, String objectName) - throws StorageException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -36,22 +35,24 @@ public static void setTemporaryHold(String projectId, String bucketName, String // The ID of your GCS object // String objectName = "your-object-name"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId blobId = BlobId.of(bucketName, objectName); - Blob blob = storage.get(blobId); - if (blob == null) { - System.out.println("The object " + objectName + " was not found in " + bucketName); - return; - } + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId blobId = BlobId.of(bucketName, objectName); + Blob blob = storage.get(blobId); + if (blob == null) { + System.out.println("The object " + objectName + " was not found in " + bucketName); + return; + } - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request to upload returns a 412 error if - // the object's generation number does not match your precondition. - Storage.BlobTargetOption precondition = Storage.BlobTargetOption.generationMatch(); + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request to upload returns a 412 error if + // the object's generation number does not match your precondition. + Storage.BlobTargetOption precondition = Storage.BlobTargetOption.generationMatch(); - blob.toBuilder().setTemporaryHold(true).build().update(precondition); + blob.toBuilder().setTemporaryHold(true).build().update(precondition); - System.out.println("Temporary hold was set for " + objectName); + System.out.println("Temporary hold was set for " + objectName); + } } } // [END storage_set_temporary_hold] diff --git a/samples/snippets/src/main/java/com/example/storage/object/StreamObjectDownload.java b/samples/snippets/src/main/java/com/example/storage/object/StreamObjectDownload.java index 4dd38bafd1..32b66c587b 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/StreamObjectDownload.java +++ b/samples/snippets/src/main/java/com/example/storage/object/StreamObjectDownload.java @@ -23,7 +23,6 @@ import com.google.cloud.storage.Storage; import com.google.cloud.storage.StorageOptions; import com.google.common.io.ByteStreams; -import java.io.IOException; import java.nio.channels.FileChannel; import java.nio.file.Path; import java.nio.file.Paths; @@ -32,8 +31,7 @@ public class StreamObjectDownload { public static void streamObjectDownload( - String projectId, String bucketName, String objectName, String targetFile) - throws IOException { + String projectId, String bucketName, String objectName, String targetFile) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -47,21 +45,23 @@ public static void streamObjectDownload( // String targetFile = "path/to/your/file"; Path targetFilePath = Paths.get(targetFile); - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - try (ReadChannel reader = storage.reader(BlobId.of(bucketName, objectName)); - FileChannel targetFileChannel = - FileChannel.open(targetFilePath, StandardOpenOption.WRITE)) { + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + try (ReadChannel reader = storage.reader(BlobId.of(bucketName, objectName)); + FileChannel targetFileChannel = + FileChannel.open(targetFilePath, StandardOpenOption.WRITE)) { - ByteStreams.copy(reader, targetFileChannel); + ByteStreams.copy(reader, targetFileChannel); - System.out.println( - "Downloaded object " - + objectName - + " from bucket " - + bucketName - + " to " - + targetFile - + " using a ReadChannel."); + System.out.println( + "Downloaded object " + + objectName + + " from bucket " + + bucketName + + " to " + + targetFile + + " using a ReadChannel."); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/object/StreamObjectUpload.java b/samples/snippets/src/main/java/com/example/storage/object/StreamObjectUpload.java index b5b82d82c5..db310bf02a 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/StreamObjectUpload.java +++ b/samples/snippets/src/main/java/com/example/storage/object/StreamObjectUpload.java @@ -23,14 +23,13 @@ import com.google.cloud.storage.BlobInfo; import com.google.cloud.storage.Storage; import com.google.cloud.storage.StorageOptions; -import java.io.IOException; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; public class StreamObjectUpload { public static void streamObjectUpload( - String projectId, String bucketName, String objectName, String contents) throws IOException { + String projectId, String bucketName, String objectName, String contents) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -43,14 +42,16 @@ public static void streamObjectUpload( // The string of contents you wish to upload // String contents = "Hello world!"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId blobId = BlobId.of(bucketName, objectName); - BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build(); - byte[] content = contents.getBytes(StandardCharsets.UTF_8); - try (WriteChannel writer = storage.writer(blobInfo)) { - writer.write(ByteBuffer.wrap(content)); - System.out.println( - "Wrote to " + objectName + " in bucket " + bucketName + " using a WriteChannel."); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId blobId = BlobId.of(bucketName, objectName); + BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build(); + byte[] content = contents.getBytes(StandardCharsets.UTF_8); + try (WriteChannel writer = storage.writer(blobInfo)) { + writer.write(ByteBuffer.wrap(content)); + System.out.println( + "Wrote to " + objectName + " in bucket " + bucketName + " using a WriteChannel."); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/object/UploadEncryptedObject.java b/samples/snippets/src/main/java/com/example/storage/object/UploadEncryptedObject.java index e51067c264..9a0b2b8514 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/UploadEncryptedObject.java +++ b/samples/snippets/src/main/java/com/example/storage/object/UploadEncryptedObject.java @@ -22,14 +22,13 @@ import com.google.cloud.storage.BlobInfo; import com.google.cloud.storage.Storage; import com.google.cloud.storage.StorageOptions; -import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; public class UploadEncryptedObject { public static void uploadEncryptedObject( String projectId, String bucketName, String objectName, String filePath, String encryptionKey) - throws IOException { + throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -45,41 +44,43 @@ public static void uploadEncryptedObject( // The key to encrypt the object with // String encryptionKey = "TIbv/fjexq+VmtXzAlc63J4z5kFmWJ6NdAPQulQBT7g="; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId blobId = BlobId.of(bucketName, objectName); - BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId blobId = BlobId.of(bucketName, objectName); + BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build(); - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request returns a 412 error if the - // preconditions are not met. - Storage.BlobTargetOption precondition; - if (storage.get(bucketName, objectName) == null) { - // For a target object that does not yet exist, set the DoesNotExist precondition. - // This will cause the request to fail if the object is created before the request runs. - precondition = Storage.BlobTargetOption.doesNotExist(); - } else { - // If the destination already exists in your bucket, instead set a generation-match - // precondition. This will cause the request to fail if the existing object's generation - // changes before the request runs. - precondition = - Storage.BlobTargetOption.generationMatch( - storage.get(bucketName, objectName).getGeneration()); - } + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request returns a 412 error if the + // preconditions are not met. + Storage.BlobTargetOption precondition; + if (storage.get(bucketName, objectName) == null) { + // For a target object that does not yet exist, set the DoesNotExist precondition. + // This will cause the request to fail if the object is created before the request runs. + precondition = Storage.BlobTargetOption.doesNotExist(); + } else { + // If the destination already exists in your bucket, instead set a generation-match + // precondition. This will cause the request to fail if the existing object's generation + // changes before the request runs. + precondition = + Storage.BlobTargetOption.generationMatch( + storage.get(bucketName, objectName).getGeneration()); + } - storage.create( - blobInfo, - Files.readAllBytes(Paths.get(filePath)), - Storage.BlobTargetOption.encryptionKey(encryptionKey), - precondition); + storage.create( + blobInfo, + Files.readAllBytes(Paths.get(filePath)), + Storage.BlobTargetOption.encryptionKey(encryptionKey), + precondition); - System.out.println( - "File " - + filePath - + " uploaded to bucket " - + bucketName - + " as " - + objectName - + " with supplied encryption key"); + System.out.println( + "File " + + filePath + + " uploaded to bucket " + + bucketName + + " as " + + objectName + + " with supplied encryption key"); + } } } // [END storage_upload_encrypted_file] diff --git a/samples/snippets/src/main/java/com/example/storage/object/UploadKmsEncryptedObject.java b/samples/snippets/src/main/java/com/example/storage/object/UploadKmsEncryptedObject.java index 3876971ca8..55c4eba6d3 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/UploadKmsEncryptedObject.java +++ b/samples/snippets/src/main/java/com/example/storage/object/UploadKmsEncryptedObject.java @@ -27,7 +27,7 @@ public class UploadKmsEncryptedObject { public static void uploadKmsEncryptedObject( - String projectId, String bucketName, String objectName, String kmsKeyName) { + String projectId, String bucketName, String objectName, String kmsKeyName) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -40,38 +40,40 @@ public static void uploadKmsEncryptedObject( // The name of the KMS key to encrypt with // String kmsKeyName = "projects/my-project/locations/us/keyRings/my_key_ring/cryptoKeys/my_key" - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - byte[] data = "Hello, World!".getBytes(UTF_8); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + byte[] data = "Hello, World!".getBytes(UTF_8); - BlobId blobId = BlobId.of(bucketName, objectName); - BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("text/plain").build(); + BlobId blobId = BlobId.of(bucketName, objectName); + BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setContentType("text/plain").build(); - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request returns a 412 error if the - // preconditions are not met. - Storage.BlobTargetOption precondition; - if (storage.get(bucketName, objectName) == null) { - // For a target object that does not yet exist, set the DoesNotExist precondition. - // This will cause the request to fail if the object is created before the request runs. - precondition = Storage.BlobTargetOption.doesNotExist(); - } else { - // If the destination already exists in your bucket, instead set a generation-match - // precondition. This will cause the request to fail if the existing object's generation - // changes before the request runs. - precondition = - Storage.BlobTargetOption.generationMatch( - storage.get(bucketName, objectName).getGeneration()); - } + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request returns a 412 error if the + // preconditions are not met. + Storage.BlobTargetOption precondition; + if (storage.get(bucketName, objectName) == null) { + // For a target object that does not yet exist, set the DoesNotExist precondition. + // This will cause the request to fail if the object is created before the request runs. + precondition = Storage.BlobTargetOption.doesNotExist(); + } else { + // If the destination already exists in your bucket, instead set a generation-match + // precondition. This will cause the request to fail if the existing object's generation + // changes before the request runs. + precondition = + Storage.BlobTargetOption.generationMatch( + storage.get(bucketName, objectName).getGeneration()); + } - storage.create(blobInfo, data, Storage.BlobTargetOption.kmsKeyName(kmsKeyName), precondition); + storage.create(blobInfo, data, Storage.BlobTargetOption.kmsKeyName(kmsKeyName), precondition); - System.out.println( - "Uploaded object " - + objectName - + " in bucket " - + bucketName - + " encrypted with " - + kmsKeyName); + System.out.println( + "Uploaded object " + + objectName + + " in bucket " + + bucketName + + " encrypted with " + + kmsKeyName); + } } } // [END storage_upload_with_kms_key] diff --git a/samples/snippets/src/main/java/com/example/storage/object/UploadObject.java b/samples/snippets/src/main/java/com/example/storage/object/UploadObject.java index 6fa796d62f..b3e1139ec2 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/UploadObject.java +++ b/samples/snippets/src/main/java/com/example/storage/object/UploadObject.java @@ -22,12 +22,11 @@ import com.google.cloud.storage.BlobInfo; import com.google.cloud.storage.Storage; import com.google.cloud.storage.StorageOptions; -import java.io.IOException; import java.nio.file.Paths; public class UploadObject { public static void uploadObject( - String projectId, String bucketName, String objectName, String filePath) throws IOException { + String projectId, String bucketName, String objectName, String filePath) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -40,30 +39,32 @@ public static void uploadObject( // The path to your file to upload // String filePath = "path/to/your/file" - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId blobId = BlobId.of(bucketName, objectName); - BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build(); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId blobId = BlobId.of(bucketName, objectName); + BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build(); - // Optional: set a generation-match precondition to avoid potential race - // conditions and data corruptions. The request returns a 412 error if the - // preconditions are not met. - Storage.BlobWriteOption precondition; - if (storage.get(bucketName, objectName) == null) { - // For a target object that does not yet exist, set the DoesNotExist precondition. - // This will cause the request to fail if the object is created before the request runs. - precondition = Storage.BlobWriteOption.doesNotExist(); - } else { - // If the destination already exists in your bucket, instead set a generation-match - // precondition. This will cause the request to fail if the existing object's generation - // changes before the request runs. - precondition = - Storage.BlobWriteOption.generationMatch( - storage.get(bucketName, objectName).getGeneration()); - } - storage.createFrom(blobInfo, Paths.get(filePath), precondition); + // Optional: set a generation-match precondition to avoid potential race + // conditions and data corruptions. The request returns a 412 error if the + // preconditions are not met. + Storage.BlobWriteOption precondition; + if (storage.get(bucketName, objectName) == null) { + // For a target object that does not yet exist, set the DoesNotExist precondition. + // This will cause the request to fail if the object is created before the request runs. + precondition = Storage.BlobWriteOption.doesNotExist(); + } else { + // If the destination already exists in your bucket, instead set a generation-match + // precondition. This will cause the request to fail if the existing object's generation + // changes before the request runs. + precondition = + Storage.BlobWriteOption.generationMatch( + storage.get(bucketName, objectName).getGeneration()); + } + storage.createFrom(blobInfo, Paths.get(filePath), precondition); - System.out.println( - "File " + filePath + " uploaded to bucket " + bucketName + " as " + objectName); + System.out.println( + "File " + filePath + " uploaded to bucket " + bucketName + " as " + objectName); + } } } // [END storage_upload_file] diff --git a/samples/snippets/src/main/java/com/example/storage/object/UploadObjectFromMemory.java b/samples/snippets/src/main/java/com/example/storage/object/UploadObjectFromMemory.java index 98d0020200..723a0317b7 100644 --- a/samples/snippets/src/main/java/com/example/storage/object/UploadObjectFromMemory.java +++ b/samples/snippets/src/main/java/com/example/storage/object/UploadObjectFromMemory.java @@ -22,12 +22,11 @@ import com.google.cloud.storage.BlobInfo; import com.google.cloud.storage.Storage; import com.google.cloud.storage.StorageOptions; -import java.io.IOException; import java.nio.charset.StandardCharsets; public class UploadObjectFromMemory { public static void uploadObjectFromMemory( - String projectId, String bucketName, String objectName, String contents) throws IOException { + String projectId, String bucketName, String objectName, String contents) throws Exception { // The ID of your GCP project // String projectId = "your-project-id"; @@ -40,37 +39,39 @@ public static void uploadObjectFromMemory( // The string of contents you wish to upload // String contents = "Hello world!"; - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - BlobId blobId = BlobId.of(bucketName, objectName); - BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build(); - byte[] content = contents.getBytes(StandardCharsets.UTF_8); + try (Storage storage = + StorageOptions.newBuilder().setProjectId(projectId).build().getService()) { + BlobId blobId = BlobId.of(bucketName, objectName); + BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build(); + byte[] content = contents.getBytes(StandardCharsets.UTF_8); - // Optional: set a generation-match precondition to enable automatic retries, avoid potential - // race - // conditions and data corruptions. The request returns a 412 error if the - // preconditions are not met. - Storage.BlobTargetOption precondition; - if (storage.get(bucketName, objectName) == null) { - // For a target object that does not yet exist, set the DoesNotExist precondition. - // This will cause the request to fail if the object is created before the request runs. - precondition = Storage.BlobTargetOption.doesNotExist(); - } else { - // If the destination already exists in your bucket, instead set a generation-match - // precondition. This will cause the request to fail if the existing object's generation - // changes before the request runs. - precondition = - Storage.BlobTargetOption.generationMatch( - storage.get(bucketName, objectName).getGeneration()); - } - storage.create(blobInfo, content, precondition); + // Optional: set a generation-match precondition to enable automatic retries, avoid potential + // race + // conditions and data corruptions. The request returns a 412 error if the + // preconditions are not met. + Storage.BlobTargetOption precondition; + if (storage.get(bucketName, objectName) == null) { + // For a target object that does not yet exist, set the DoesNotExist precondition. + // This will cause the request to fail if the object is created before the request runs. + precondition = Storage.BlobTargetOption.doesNotExist(); + } else { + // If the destination already exists in your bucket, instead set a generation-match + // precondition. This will cause the request to fail if the existing object's generation + // changes before the request runs. + precondition = + Storage.BlobTargetOption.generationMatch( + storage.get(bucketName, objectName).getGeneration()); + } + storage.create(blobInfo, content, precondition); - System.out.println( - "Object " - + objectName - + " uploaded to bucket " - + bucketName - + " with contents " - + contents); + System.out.println( + "Object " + + objectName + + " uploaded to bucket " + + bucketName + + " with contents " + + contents); + } } } // [END storage_file_upload_from_memory] diff --git a/samples/snippets/src/main/java/com/example/storage/transfermanager/AllowDivideAndConquerDownload.java b/samples/snippets/src/main/java/com/example/storage/transfermanager/AllowDivideAndConquerDownload.java index 7b41ce2fb5..61d581940b 100644 --- a/samples/snippets/src/main/java/com/example/storage/transfermanager/AllowDivideAndConquerDownload.java +++ b/samples/snippets/src/main/java/com/example/storage/transfermanager/AllowDivideAndConquerDownload.java @@ -29,26 +29,25 @@ class AllowDivideAndConquerDownload { public static void divideAndConquerDownloadAllowed( - List blobs, String bucketName, Path destinationDirectory) { - TransferManager transferManager = - TransferManagerConfig.newBuilder() - .setAllowDivideAndConquerDownload(true) - .build() - .getService(); - ParallelDownloadConfig parallelDownloadConfig = - ParallelDownloadConfig.newBuilder() - .setBucketName(bucketName) - .setDownloadDirectory(destinationDirectory) - .build(); - List results = - transferManager.downloadBlobs(blobs, parallelDownloadConfig).getDownloadResults(); + List blobs, String bucketName, Path destinationDirectory) throws Exception { + TransferManagerConfig transferManagerConfig = + TransferManagerConfig.newBuilder().setAllowDivideAndConquerDownload(true).build(); + try (TransferManager transferManager = transferManagerConfig.getService()) { + ParallelDownloadConfig parallelDownloadConfig = + ParallelDownloadConfig.newBuilder() + .setBucketName(bucketName) + .setDownloadDirectory(destinationDirectory) + .build(); + List results = + transferManager.downloadBlobs(blobs, parallelDownloadConfig).getDownloadResults(); - for (DownloadResult result : results) { - System.out.println( - "Download of " - + result.getInput().getName() - + " completed with status " - + result.getStatus()); + for (DownloadResult result : results) { + System.out.println( + "Download of " + + result.getInput().getName() + + " completed with status " + + result.getStatus()); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/transfermanager/AllowParallelCompositeUpload.java b/samples/snippets/src/main/java/com/example/storage/transfermanager/AllowParallelCompositeUpload.java index 1aab8f4b67..f9760bfecd 100644 --- a/samples/snippets/src/main/java/com/example/storage/transfermanager/AllowParallelCompositeUpload.java +++ b/samples/snippets/src/main/java/com/example/storage/transfermanager/AllowParallelCompositeUpload.java @@ -18,33 +18,32 @@ package com.example.storage.transfermanager; // [START storage_transfer_manager_upload_chunks_concurrently] + import com.google.cloud.storage.transfermanager.ParallelUploadConfig; import com.google.cloud.storage.transfermanager.TransferManager; import com.google.cloud.storage.transfermanager.TransferManagerConfig; import com.google.cloud.storage.transfermanager.UploadResult; -import java.io.IOException; import java.nio.file.Path; import java.util.List; class AllowParallelCompositeUpload { public static void parallelCompositeUploadAllowed(String bucketName, List files) - throws IOException { - TransferManager transferManager = - TransferManagerConfig.newBuilder() - .setAllowParallelCompositeUpload(true) - .build() - .getService(); - ParallelUploadConfig parallelUploadConfig = - ParallelUploadConfig.newBuilder().setBucketName(bucketName).build(); - List results = - transferManager.uploadFiles(files, parallelUploadConfig).getUploadResults(); - for (UploadResult result : results) { - System.out.println( - "Upload for " - + result.getInput().getName() - + " completed with status " - + result.getStatus()); + throws Exception { + TransferManagerConfig transferManagerConfig = + TransferManagerConfig.newBuilder().setAllowParallelCompositeUpload(true).build(); + try (TransferManager transferManager = transferManagerConfig.getService()) { + ParallelUploadConfig parallelUploadConfig = + ParallelUploadConfig.newBuilder().setBucketName(bucketName).build(); + List results = + transferManager.uploadFiles(files, parallelUploadConfig).getUploadResults(); + for (UploadResult result : results) { + System.out.println( + "Upload for " + + result.getInput().getName() + + " completed with status " + + result.getStatus()); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/transfermanager/DownloadBucket.java b/samples/snippets/src/main/java/com/example/storage/transfermanager/DownloadBucket.java index b77a6fee67..5905480823 100644 --- a/samples/snippets/src/main/java/com/example/storage/transfermanager/DownloadBucket.java +++ b/samples/snippets/src/main/java/com/example/storage/transfermanager/DownloadBucket.java @@ -31,30 +31,36 @@ class DownloadBucket { public static void downloadBucketContents( - String projectId, String bucketName, Path destinationDirectory) { - Storage storage = StorageOptions.newBuilder().setProjectId(projectId).build().getService(); - List blobs = - storage - .list(bucketName) - .streamAll() - .map(blob -> blob.asBlobInfo()) - .collect(Collectors.toList()); - TransferManager transferManager = TransferManagerConfig.newBuilder().build().getService(); - ParallelDownloadConfig parallelDownloadConfig = - ParallelDownloadConfig.newBuilder() - .setBucketName(bucketName) - .setDownloadDirectory(destinationDirectory) - .build(); + String projectId, String bucketName, Path destinationDirectory) throws Exception { + StorageOptions storageOptions = StorageOptions.newBuilder().setProjectId(projectId).build(); + List blobs; + try (Storage storage = storageOptions.getService()) { + blobs = + storage + .list(bucketName) + .streamAll() + .map(blob -> blob.asBlobInfo()) + .collect(Collectors.toList()); + } + + TransferManagerConfig transferManagerConfig = TransferManagerConfig.newBuilder().build(); + try (TransferManager transferManager = transferManagerConfig.getService()) { + ParallelDownloadConfig parallelDownloadConfig = + ParallelDownloadConfig.newBuilder() + .setBucketName(bucketName) + .setDownloadDirectory(destinationDirectory) + .build(); - List results = - transferManager.downloadBlobs(blobs, parallelDownloadConfig).getDownloadResults(); + List results = + transferManager.downloadBlobs(blobs, parallelDownloadConfig).getDownloadResults(); - for (DownloadResult result : results) { - System.out.println( - "Download of " - + result.getInput().getName() - + " completed with status " - + result.getStatus()); + for (DownloadResult result : results) { + System.out.println( + "Download of " + + result.getInput().getName() + + " completed with status " + + result.getStatus()); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/transfermanager/DownloadMany.java b/samples/snippets/src/main/java/com/example/storage/transfermanager/DownloadMany.java index a79e18cdcf..3e30671067 100644 --- a/samples/snippets/src/main/java/com/example/storage/transfermanager/DownloadMany.java +++ b/samples/snippets/src/main/java/com/example/storage/transfermanager/DownloadMany.java @@ -30,8 +30,8 @@ class DownloadMany { public static void downloadManyBlobs( String bucketName, List blobs, Path destinationDirectory) throws Exception { - try (TransferManager transferManager = - TransferManagerConfig.newBuilder().build().getService()) { + TransferManagerConfig transferManagerConfig = TransferManagerConfig.newBuilder().build(); + try (TransferManager transferManager = transferManagerConfig.getService()) { ParallelDownloadConfig parallelDownloadConfig = ParallelDownloadConfig.newBuilder() .setBucketName(bucketName) diff --git a/samples/snippets/src/main/java/com/example/storage/transfermanager/UploadDirectory.java b/samples/snippets/src/main/java/com/example/storage/transfermanager/UploadDirectory.java index 0a14bec049..3145f2aead 100644 --- a/samples/snippets/src/main/java/com/example/storage/transfermanager/UploadDirectory.java +++ b/samples/snippets/src/main/java/com/example/storage/transfermanager/UploadDirectory.java @@ -17,11 +17,11 @@ package com.example.storage.transfermanager; // [START storage_transfer_manager_upload_directory] + import com.google.cloud.storage.transfermanager.ParallelUploadConfig; import com.google.cloud.storage.transfermanager.TransferManager; import com.google.cloud.storage.transfermanager.TransferManagerConfig; import com.google.cloud.storage.transfermanager.UploadResult; -import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; @@ -31,26 +31,28 @@ class UploadDirectory { public static void uploadDirectoryContents(String bucketName, Path sourceDirectory) - throws IOException { - TransferManager transferManager = TransferManagerConfig.newBuilder().build().getService(); - ParallelUploadConfig parallelUploadConfig = - ParallelUploadConfig.newBuilder().setBucketName(bucketName).build(); + throws Exception { + TransferManagerConfig transferManagerConfig = TransferManagerConfig.newBuilder().build(); + try (TransferManager transferManager = transferManagerConfig.getService()) { + ParallelUploadConfig parallelUploadConfig = + ParallelUploadConfig.newBuilder().setBucketName(bucketName).build(); - // Create a list to store the file paths - List filePaths = new ArrayList<>(); - // Get all files in the directory - // try-with-resource to ensure pathStream is closed - try (Stream pathStream = Files.walk(sourceDirectory)) { - pathStream.filter(Files::isRegularFile).forEach(filePaths::add); - } - List results = - transferManager.uploadFiles(filePaths, parallelUploadConfig).getUploadResults(); - for (UploadResult result : results) { - System.out.println( - "Upload for " - + result.getInput().getName() - + " completed with status " - + result.getStatus()); + // Create a list to store the file paths + List filePaths = new ArrayList<>(); + // Get all files in the directory + // try-with-resource to ensure pathStream is closed + try (Stream pathStream = Files.walk(sourceDirectory)) { + pathStream.filter(Files::isRegularFile).forEach(filePaths::add); + } + List results = + transferManager.uploadFiles(filePaths, parallelUploadConfig).getUploadResults(); + for (UploadResult result : results) { + System.out.println( + "Upload for " + + result.getInput().getName() + + " completed with status " + + result.getStatus()); + } } } } diff --git a/samples/snippets/src/main/java/com/example/storage/transfermanager/UploadMany.java b/samples/snippets/src/main/java/com/example/storage/transfermanager/UploadMany.java index b477f87bdd..8908e9fcad 100644 --- a/samples/snippets/src/main/java/com/example/storage/transfermanager/UploadMany.java +++ b/samples/snippets/src/main/java/com/example/storage/transfermanager/UploadMany.java @@ -21,24 +21,25 @@ import com.google.cloud.storage.transfermanager.TransferManager; import com.google.cloud.storage.transfermanager.TransferManagerConfig; import com.google.cloud.storage.transfermanager.UploadResult; -import java.io.IOException; import java.nio.file.Path; import java.util.List; class UploadMany { - public static void uploadManyFiles(String bucketName, List files) throws IOException { - TransferManager transferManager = TransferManagerConfig.newBuilder().build().getService(); - ParallelUploadConfig parallelUploadConfig = - ParallelUploadConfig.newBuilder().setBucketName(bucketName).build(); - List results = - transferManager.uploadFiles(files, parallelUploadConfig).getUploadResults(); - for (UploadResult result : results) { - System.out.println( - "Upload for " - + result.getInput().getName() - + " completed with status " - + result.getStatus()); + public static void uploadManyFiles(String bucketName, List files) throws Exception { + TransferManagerConfig transferManagerConfig = TransferManagerConfig.newBuilder().build(); + try (TransferManager transferManager = transferManagerConfig.getService()) { + ParallelUploadConfig parallelUploadConfig = + ParallelUploadConfig.newBuilder().setBucketName(bucketName).build(); + List results = + transferManager.uploadFiles(files, parallelUploadConfig).getUploadResults(); + for (UploadResult result : results) { + System.out.println( + "Upload for " + + result.getInput().getName() + + " completed with status " + + result.getStatus()); + } } } } diff --git a/samples/snippets/src/test/java/com/example/storage/ConfigureRetriesTest.java b/samples/snippets/src/test/java/com/example/storage/ConfigureRetriesTest.java index 8b40189b8e..80e3b1c98f 100644 --- a/samples/snippets/src/test/java/com/example/storage/ConfigureRetriesTest.java +++ b/samples/snippets/src/test/java/com/example/storage/ConfigureRetriesTest.java @@ -57,7 +57,7 @@ public void tearDown() throws Exception { } @Test - public void testConfigureRetries() { + public void testConfigureRetries() throws Exception { ConfigureRetries.deleteBlob(bucketName, blobName); assertThat(stdOut.getCapturedOutputAsUtf8String()).contains("Deletion"); assertThat(stdOut.getCapturedOutputAsUtf8String()).contains("successfully"); diff --git a/samples/snippets/src/test/java/com/example/storage/ITBucketSnippets.java b/samples/snippets/src/test/java/com/example/storage/ITBucketSnippets.java index 051bd05e23..de6785b2ae 100644 --- a/samples/snippets/src/test/java/com/example/storage/ITBucketSnippets.java +++ b/samples/snippets/src/test/java/com/example/storage/ITBucketSnippets.java @@ -159,7 +159,7 @@ public void after() throws Exception { } @Test - public void testAddBucketLabel() { + public void testAddBucketLabel() throws Exception { int oldSize = storage.get(BUCKET).getLabels().size(); AddBucketLabel.addBucketLabel(PROJECT_ID, BUCKET, "key", "value"); assertEquals(oldSize + 1, storage.get(BUCKET).getLabels().size()); @@ -177,7 +177,7 @@ public void testChangeDefaultStorageClass() throws Throwable { } @Test - public void testCreateBucket() { + public void testCreateBucket() throws Exception { String newBucket = RemoteStorageHelper.generateBucketName(); CreateBucket.createBucket(PROJECT_ID, newBucket); try { @@ -189,7 +189,7 @@ public void testCreateBucket() { } @Test - public void testCreateBucketWithStorageClassAndLocation() { + public void testCreateBucketWithStorageClassAndLocation() throws Exception { String newBucket = RemoteStorageHelper.generateBucketName(); CreateBucketWithStorageClassAndLocation.createBucketWithStorageClassAndLocation( PROJECT_ID, newBucket); @@ -211,13 +211,15 @@ public void testDeleteBucket() { try { DeleteBucket.deleteBucket(PROJECT_ID, newBucket); assertNull(storage.get(newBucket)); + } catch (Exception e) { + throw new RuntimeException(e); } finally { storage.delete(newBucket); } } @Test - public void testGetBucketMetadata() { + public void testGetBucketMetadata() throws Exception { Bucket bucket = storage.get(BUCKET, Storage.BucketGetOption.fields(Storage.BucketField.values())); bucket = @@ -262,14 +264,14 @@ public void testGetBucketMetadata() { } @Test - public void testListBuckets() { + public void testListBuckets() throws Exception { ListBuckets.listBuckets(PROJECT_ID); String snippetOutput = stdOutCaptureRule.getCapturedOutputAsUtf8String(); assertTrue(snippetOutput.contains(BUCKET)); } @Test - public void testRemoveBucketLabel() { + public void testRemoveBucketLabel() throws Exception { storage.get(BUCKET).toBuilder().setLabels(ImmutableMap.of("k", "v")).build().update(); int oldSize = storage.get(BUCKET).getLabels().size(); RemoveBucketLabel.removeBucketLabel(PROJECT_ID, BUCKET, "k"); @@ -477,7 +479,7 @@ public void testSetBucketWebsiteInfo() throws Throwable { } @Test - public void testSetClientEndpoint() { + public void testSetClientEndpoint() throws Exception { SetClientEndpoint.setClientEndpoint(PROJECT_ID, "https://storage.googleapis.com"); String snippetOutput = stdOutCaptureRule.getCapturedOutputAsUtf8String(); assertTrue(snippetOutput.contains("https://storage.googleapis.com")); @@ -645,13 +647,15 @@ public void testLockRetentionPolicy() { assertEquals(5L, (long) storage.get(tempBucket).getRetentionPeriod()); LockRetentionPolicy.lockRetentionPolicy(PROJECT_ID, tempBucket); assertTrue(storage.get(tempBucket).retentionPolicyIsLocked()); + } catch (Exception e) { + throw new RuntimeException(e); } finally { storage.delete(tempBucket); } } @Test - public void testUniformBucketLevelAccess() { + public void testUniformBucketLevelAccess() throws Exception { EnableUniformBucketLevelAccess.enableUniformBucketLevelAccess(PROJECT_ID, BUCKET); Bucket bucket = storage.get(BUCKET); assertTrue(bucket.getIamConfiguration().isUniformBucketLevelAccessEnabled()); @@ -666,7 +670,7 @@ public void testUniformBucketLevelAccess() { } @Test - public void testCreateBucketWithObjectRetention() { + public void testCreateBucketWithObjectRetention() throws Exception { String tempBucket = RemoteStorageHelper.generateBucketName(); try { @@ -680,7 +684,7 @@ public void testCreateBucketWithObjectRetention() { } @Test - public void testSetSoftDeletePolicy() { + public void testSetSoftDeletePolicy() throws Exception { String tempBucket = RemoteStorageHelper.generateBucketName(); Bucket bucket = storage.create(BucketInfo.of(tempBucket)); try { @@ -696,7 +700,7 @@ public void testSetSoftDeletePolicy() { } @Test - public void testDisableSoftDelete() { + public void testDisableSoftDelete() throws Exception { String tempBucket = RemoteStorageHelper.generateBucketName(); Bucket bucket = storage.create(BucketInfo.of(tempBucket)); try { diff --git a/samples/snippets/src/test/java/com/example/storage/ITHmacSnippets.java b/samples/snippets/src/test/java/com/example/storage/ITHmacSnippets.java index 632142a618..6e6770d48b 100644 --- a/samples/snippets/src/test/java/com/example/storage/ITHmacSnippets.java +++ b/samples/snippets/src/test/java/com/example/storage/ITHmacSnippets.java @@ -111,7 +111,7 @@ public void testDeactivateHmacKey() throws Exception { } @Test - public void testDeleteHmacKey() { + public void testDeleteHmacKey() throws Exception { HmacKey hmacKey = storage.createHmacKey(ServiceAccount.of(HMAC_KEY_TEST_SERVICE_ACCOUNT)); HmacKeyMetadata metadata = storage.updateHmacKeyState(hmacKey.getMetadata(), HmacKeyState.INACTIVE); @@ -121,7 +121,7 @@ public void testDeleteHmacKey() { } @Test - public void testListHmacKeys() { + public void testListHmacKeys() throws Exception { // Create 2 HMAC keys final HmacKey one = storage.createHmacKey( diff --git a/samples/snippets/src/test/java/com/example/storage/ITObjectSnippets.java b/samples/snippets/src/test/java/com/example/storage/ITObjectSnippets.java index 28ceeb3081..a99600bb82 100644 --- a/samples/snippets/src/test/java/com/example/storage/ITObjectSnippets.java +++ b/samples/snippets/src/test/java/com/example/storage/ITObjectSnippets.java @@ -106,7 +106,7 @@ public class ITObjectSnippets extends TestBase { @Inject public KmsFixture kmsFixture; @Test - public void testChangeObjectStorageClass() { + public void testChangeObjectStorageClass() throws Exception { String objectName = generator.randomObjectName(); BlobInfo gen1 = storage.create(info(objectName), CONTENT, BlobTargetOption.doesNotExist()); Assert.assertNotEquals(StorageClass.COLDLINE, gen1.getStorageClass()); @@ -135,7 +135,7 @@ public void testCopyObject() throws Exception { } @Test - public void testDeleteObject() { + public void testDeleteObject() throws Exception { String blob = generator.randomObjectName(); storage.create(BlobInfo.newBuilder(BlobId.of(bucket.getName(), blob)).build()); assertNotNull(storage.get(bucket.getName(), blob)); @@ -158,7 +158,7 @@ public void testDownloadObject() throws Exception { } @Test - public void testDownloadObjectIntoMemory() throws IOException { + public void testDownloadObjectIntoMemory() throws Exception { String objectName = generator.randomObjectName(); storage.create(info(objectName), CONTENT, BlobTargetOption.doesNotExist()); DownloadObjectIntoMemory.downloadObjectIntoMemory( @@ -195,7 +195,7 @@ public void testDownloadPublicObject() throws Exception { } @Test - public void testGetObjectMetadata() { + public void testGetObjectMetadata() throws Exception { String blobName = generator.randomObjectName(); BlobId blobId = BlobId.of(bucket.getName(), blobName); BlobInfo blobInfo = BlobInfo.newBuilder(blobId).setMetadata(ImmutableMap.of("k", "v")).build(); @@ -236,7 +236,7 @@ public void testGetObjectMetadata() { } @Test - public void testListObjects() { + public void testListObjects() throws Exception { String name1 = generator.randomObjectName(); storage.create(info(name1), BlobTargetOption.doesNotExist()); ListObjects.listObjects(GOOGLE_CLOUD_PROJECT, bucket.getName()); @@ -245,7 +245,7 @@ public void testListObjects() { } @Test - public void testListObjectsWithPrefix() { + public void testListObjectsWithPrefix() throws Exception { String prefix = generator.randomObjectName(); storage.create(BlobInfo.newBuilder(bucket.getName(), prefix + "a/1.txt").build()); storage.create(BlobInfo.newBuilder(bucket.getName(), prefix + "a/b/2.txt").build()); @@ -278,7 +278,7 @@ public void testCopyDeleteObject() throws Exception { } @Test - public void testAtomicMoveObject() { + public void testAtomicMoveObject() throws Exception { String blob1 = generator.randomObjectName(); String blob2 = generator.randomObjectName(); @@ -291,7 +291,7 @@ public void testAtomicMoveObject() { } @Test - public void testSetObjectMetadata() { + public void testSetObjectMetadata() throws Exception { String bucketName = bucket.getName(); String name1 = generator.randomObjectName(); BlobInfo b1Gen1 = storage.create(BlobInfo.newBuilder(bucketName, name1).build()); @@ -312,11 +312,13 @@ public void testUploadObject() throws IOException { byte[] expected = Files.readAllBytes(file1.getPath()); byte[] actual = storage.readAllBytes(bucket.getName(), objectName); assertArrayEquals(expected, actual); + } catch (Exception e) { + throw new RuntimeException(e); } } @Test - public void testUploadObjectFromMemory() throws IOException { + public void testUploadObjectFromMemory() throws Exception { String objectName = "uploadobjectfrommemorytest"; UploadObjectFromMemory.uploadObjectFromMemory( GOOGLE_CLOUD_PROJECT, bucket.getName(), objectName, STRING_CONTENT); @@ -325,7 +327,7 @@ public void testUploadObjectFromMemory() throws IOException { } @Test - public void testObjectCSEKOperations() throws IOException { + public void testObjectCSEKOperations() throws Exception { GenerateEncryptionKey.generateEncryptionKey(); String snippetOutput = stdOut.getCapturedOutputAsUtf8String(); String encryptionKey = snippetOutput.split(": ")[1].trim(); @@ -408,7 +410,7 @@ public void testObjectVersioningOperations() throws Exception { } @Test - public void testV4SignedURLs() throws IOException { + public void testV4SignedURLs() throws Exception { String tempObject = "test-upload-signed-url-object"; GenerateV4PutObjectSignedUrl.generateV4PutObjectSignedUrl( GOOGLE_CLOUD_PROJECT, bucket.getName(), tempObject); @@ -437,7 +439,7 @@ public void testV4SignedURLs() throws IOException { } @Test - public void testMakeObjectPublic() { + public void testMakeObjectPublic() throws Exception { String aclBlob = generator.randomObjectName(); assertNull( storage @@ -448,7 +450,7 @@ public void testMakeObjectPublic() { } @Test - public void testComposeObject() { + public void testComposeObject() throws Exception { String firstObject = generator.randomObjectName(); String secondObject = generator.randomObjectName(); String targetObject = generator.randomObjectName(); @@ -484,7 +486,7 @@ public void testStreamUploadDownload() throws Exception { } @Test - public void testUploadKMSEncryptedObject() { + public void testUploadKMSEncryptedObject() throws Exception { String blobName = generator.randomObjectName(); UploadKmsEncryptedObject.uploadKmsEncryptedObject( GOOGLE_CLOUD_PROJECT, bucket.getName(), blobName, kmsFixture.getKey1().getName()); @@ -492,7 +494,7 @@ public void testUploadKMSEncryptedObject() { } @Test - public void testBatchSetObjectMetadata() { + public void testBatchSetObjectMetadata() throws Exception { String prefix = generator.randomObjectName(); String name1 = prefix + "/1.txt"; String name2 = prefix + "/2.txt"; @@ -511,7 +513,7 @@ public void testBatchSetObjectMetadata() { } @Test - public void testSetObjectRetentionPolicy() { + public void testSetObjectRetentionPolicy() throws Exception { BucketInfo bucketInfo = BucketInfo.newBuilder(generator.randomBucketName()).build(); Bucket tmpBucket = storage.create(bucketInfo, BucketTargetOption.enableObjectRetention(true)); String tempBucket = tmpBucket.getName(); diff --git a/samples/snippets/src/test/java/com/example/storage/ITStorageSnippets.java b/samples/snippets/src/test/java/com/example/storage/ITStorageSnippets.java index 805eef2f2c..5759ce3e40 100644 --- a/samples/snippets/src/test/java/com/example/storage/ITStorageSnippets.java +++ b/samples/snippets/src/test/java/com/example/storage/ITStorageSnippets.java @@ -70,7 +70,7 @@ public static void afterClass() throws Exception { } @Test - public void testGetServiceAccount() { + public void testGetServiceAccount() throws Exception { GetServiceAccount.getServiceAccount(PROJECT_ID); String snippetOutput = stdOutCaptureRule.getCapturedOutputAsUtf8String(); diff --git a/samples/snippets/src/test/java/com/example/storage/bucket/CreateBucketDualRegionTest.java b/samples/snippets/src/test/java/com/example/storage/bucket/CreateBucketDualRegionTest.java index 9b1ce9c74e..cf264f6ccc 100644 --- a/samples/snippets/src/test/java/com/example/storage/bucket/CreateBucketDualRegionTest.java +++ b/samples/snippets/src/test/java/com/example/storage/bucket/CreateBucketDualRegionTest.java @@ -27,7 +27,7 @@ public class CreateBucketDualRegionTest extends TestBase { @Test - public void testCreateBucketDualRegion() { + public void testCreateBucketDualRegion() throws Exception { assertNotNull("Unable to determine Project ID", GOOGLE_CLOUD_PROJECT); String newBucket = RemoteStorageHelper.generateBucketName(); CreateBucketDualRegion.createBucketDualRegion( diff --git a/samples/snippets/src/test/java/com/example/storage/bucket/PubSubNotificationTest.java b/samples/snippets/src/test/java/com/example/storage/bucket/PubSubNotificationTest.java index 3cccbaa10a..524d9e81d3 100644 --- a/samples/snippets/src/test/java/com/example/storage/bucket/PubSubNotificationTest.java +++ b/samples/snippets/src/test/java/com/example/storage/bucket/PubSubNotificationTest.java @@ -110,7 +110,7 @@ public void tearDown() { } @Test - public void testCreateBucketPubSubNotification() { + public void testCreateBucketPubSubNotification() throws Exception { CreateBucketPubSubNotification.createBucketPubSubNotification( bucketName, topic, @@ -122,7 +122,7 @@ public void testCreateBucketPubSubNotification() { } @Test - public void testDeleteBucketPubSubNotification() { + public void testDeleteBucketPubSubNotification() throws Exception { Notification notification = storage.createNotification(bucketName, notificationInfo); DeleteBucketPubSubNotification.deleteBucketPubSubNotification( bucketName, notification.getNotificationId()); @@ -131,7 +131,7 @@ public void testDeleteBucketPubSubNotification() { } @Test - public void testNotificationNotFound() { + public void testNotificationNotFound() throws Exception { Notification notification = storage.createNotification(bucketName, notificationInfo); // Do a delete first. storage.deleteNotification(bucketName, notification.getNotificationId()); @@ -142,14 +142,14 @@ public void testNotificationNotFound() { } @Test - public void testListBucketPubSubNotification() { + public void testListBucketPubSubNotification() throws Exception { storage.createNotification(bucketName, notificationInfo); ListPubSubNotifications.listPubSubNotifications(bucketName); assertThat(stdOut.getCapturedOutputAsUtf8String()).contains(topic); } @Test - public void testPrintBucketPubSubNotification() { + public void testPrintBucketPubSubNotification() throws Exception { Notification notification = storage.createNotification(bucketName, notificationInfo); PrintPubSubNotification.printPubSubNotification(bucketName, notification.getNotificationId()); assertThat(stdOut.getCapturedOutputAsUtf8String()).contains(topic); diff --git a/samples/snippets/src/test/java/com/example/storage/object/AddBlobOwnerTest.java b/samples/snippets/src/test/java/com/example/storage/object/AddBlobOwnerTest.java index 09d3c76e53..357b8e6546 100644 --- a/samples/snippets/src/test/java/com/example/storage/object/AddBlobOwnerTest.java +++ b/samples/snippets/src/test/java/com/example/storage/object/AddBlobOwnerTest.java @@ -30,7 +30,7 @@ public class AddBlobOwnerTest extends TestBase { @Test - public void testAddBlobOwner() { + public void testAddBlobOwner() throws Exception { // Check for user email before the actual test. assertWithMessage("Unable to determine user email").that(IT_SERVICE_ACCOUNT_EMAIL).isNotEmpty(); diff --git a/samples/snippets/src/test/java/com/example/storage/object/DownloadBytesRangeTest.java b/samples/snippets/src/test/java/com/example/storage/object/DownloadBytesRangeTest.java index 5ad25abe01..05c8ac6674 100644 --- a/samples/snippets/src/test/java/com/example/storage/object/DownloadBytesRangeTest.java +++ b/samples/snippets/src/test/java/com/example/storage/object/DownloadBytesRangeTest.java @@ -24,7 +24,6 @@ import com.google.cloud.storage.BlobInfo; import com.google.cloud.storage.Storage.BlobTargetOption; import java.io.File; -import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; import java.util.Arrays; @@ -37,7 +36,7 @@ public class DownloadBytesRangeTest extends TestBase { @Rule public final TemporaryFolder tmp = new TemporaryFolder(); @Test - public void testDownloadByteRange() throws IOException { + public void testDownloadByteRange() throws Exception { byte[] bytes = { // 18 elements per row 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', diff --git a/samples/snippets/src/test/java/com/example/storage/object/PrintBlobAclTest.java b/samples/snippets/src/test/java/com/example/storage/object/PrintBlobAclTest.java index 04eb9e65bd..96ef12b261 100644 --- a/samples/snippets/src/test/java/com/example/storage/object/PrintBlobAclTest.java +++ b/samples/snippets/src/test/java/com/example/storage/object/PrintBlobAclTest.java @@ -33,7 +33,7 @@ public class PrintBlobAclTest extends TestBase { public static final String IT_SERVICE_ACCOUNT_EMAIL = Env.IT_SERVICE_ACCOUNT_EMAIL; @Test - public void testPrintBlobAcls() { + public void testPrintBlobAcls() throws Exception { // Check for user email before the actual test. assertWithMessage("Unable to determine user email").that(IT_SERVICE_ACCOUNT_EMAIL).isNotEmpty(); diff --git a/samples/snippets/src/test/java/com/example/storage/object/RemoveBlobOwnerTest.java b/samples/snippets/src/test/java/com/example/storage/object/RemoveBlobOwnerTest.java index 325054041a..a9aa00856a 100644 --- a/samples/snippets/src/test/java/com/example/storage/object/RemoveBlobOwnerTest.java +++ b/samples/snippets/src/test/java/com/example/storage/object/RemoveBlobOwnerTest.java @@ -32,7 +32,7 @@ public class RemoveBlobOwnerTest extends TestBase { @Test - public void testRemoveBlobOwner() { + public void testRemoveBlobOwner() throws Exception { // Check for user email before the actual test. assertWithMessage("Unable to determine user email").that(IT_SERVICE_ACCOUNT_EMAIL).isNotEmpty(); @@ -50,7 +50,7 @@ public void testRemoveBlobOwner() { } @Test - public void testUserNotFound() { + public void testUserNotFound() throws Exception { // Check for user email before the actual test. assertWithMessage("Unable to determine user email").that(IT_SERVICE_ACCOUNT_EMAIL).isNotEmpty(); diff --git a/samples/snippets/src/test/java/com/example/storage/transfermanager/ITTransferManagerSamples.java b/samples/snippets/src/test/java/com/example/storage/transfermanager/ITTransferManagerSamples.java index 97fb2cea9c..93d56339dd 100644 --- a/samples/snippets/src/test/java/com/example/storage/transfermanager/ITTransferManagerSamples.java +++ b/samples/snippets/src/test/java/com/example/storage/transfermanager/ITTransferManagerSamples.java @@ -29,7 +29,6 @@ import com.google.cloud.storage.TmpFile; import com.google.cloud.storage.it.TemporaryBucket; import com.google.common.collect.ImmutableList; -import java.io.IOException; import java.nio.file.Path; import java.util.List; import java.util.stream.Stream; @@ -119,7 +118,7 @@ public void downloadBlobs() throws Exception { } @Test - public void uploadAllowPCU() throws IOException { + public void uploadAllowPCU() throws Exception { Path baseDir = uploadDirectory.getRoot().toPath(); try (TmpFile file1 = DataGenerator.base64Characters().tempFile(baseDir, 313 * 1024 * 1024)) { AllowParallelCompositeUpload.parallelCompositeUploadAllowed(