From 3763f6078da0c72e8277cb18482a93460856eadf Mon Sep 17 00:00:00 2001 From: nidhiii-27 Date: Tue, 4 Nov 2025 15:09:08 +0530 Subject: [PATCH 1/4] samples: add samples for mpu --- .../multipartupload/AbortMultipartUpload.java | 45 +++++++++++ .../CompleteMultipartUpload.java | 63 +++++++++++++++ .../CreateMultipartUpload.java | 32 ++++++++ .../storage/multipartupload/ListParts.java | 50 ++++++++++++ .../multipartupload/UploadPartFromFile.java | 80 +++++++++++++++++++ 5 files changed, 270 insertions(+) create mode 100644 samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java create mode 100644 samples/snippets/src/main/java/com/example/storage/multipartupload/CompleteMultipartUpload.java create mode 100644 samples/snippets/src/main/java/com/example/storage/multipartupload/CreateMultipartUpload.java create mode 100644 samples/snippets/src/main/java/com/example/storage/multipartupload/ListParts.java create mode 100644 samples/snippets/src/main/java/com/example/storage/multipartupload/UploadPartFromFile.java diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java new file mode 100644 index 000000000..ccf54e942 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java @@ -0,0 +1,45 @@ +package com.example.storage.multipartupload; + +import com.google.cloud.storage.HttpStorageOptions; +import com.google.cloud.storage.MultipartUploadClient; +import com.google.cloud.storage.MultipartUploadSettings; +import com.google.cloud.storage.multipartupload.model.AbortMultipartUploadRequest; +import com.google.cloud.storage.multipartupload.model.CreateMultipartUploadRequest; +import com.google.cloud.storage.multipartupload.model.CreateMultipartUploadResponse; + +public class AbortMultipartUpload { + public static void abortMultipartUpload(String projectId, String bucketName, String objectName) { + // The ID of your GCP project + // String projectId = "your-project-id"; + + // The ID of your GCS bucket + // String bucketName = "your-unique-bucket-name"; + + // The ID of your GCS object + // String objectName = "your-object-name"; + + HttpStorageOptions storageOptions = + HttpStorageOptions.newBuilder().setProjectId(projectId).build(); + MultipartUploadSettings mpuSettings = MultipartUploadSettings.of(storageOptions); + MultipartUploadClient mpuClient = MultipartUploadClient.create(mpuSettings); + + System.out.println("Initiating a multipart upload to abort for " + objectName); + CreateMultipartUploadRequest createRequest = + CreateMultipartUploadRequest.builder().bucket(bucketName).key(objectName).build(); + CreateMultipartUploadResponse createResponse = mpuClient.createMultipartUpload(createRequest); + String uploadId = createResponse.uploadId().trim(); + System.out.println("Upload ID to be aborted: " + uploadId); + + System.out.println("Aborting multipart upload: " + uploadId); + AbortMultipartUploadRequest abortRequest = + AbortMultipartUploadRequest.builder() + .bucket(bucketName) + .key(objectName) + .uploadId(uploadId) + .build(); + + mpuClient.abortMultipartUpload(abortRequest); + + System.out.println("Multipart upload with ID " + uploadId + " has been successfully aborted."); + } +} diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/CompleteMultipartUpload.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/CompleteMultipartUpload.java new file mode 100644 index 000000000..ffd0bf4a0 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/CompleteMultipartUpload.java @@ -0,0 +1,63 @@ +package com.example.storage.multipartupload; + +import com.google.cloud.storage.HttpStorageOptions; +import com.google.cloud.storage.MultipartUploadClient; +import com.google.cloud.storage.MultipartUploadSettings; +import com.google.cloud.storage.multipartupload.model.CompleteMultipartUploadRequest; +import com.google.cloud.storage.multipartupload.model.CompleteMultipartUploadResponse; +import com.google.cloud.storage.multipartupload.model.CompletedMultipartUpload; +import com.google.cloud.storage.multipartupload.model.CompletedPart; +import java.util.List; + +public class CompleteMultipartUpload { + public static void completeMultipartUpload( + String projectId, + String bucketName, + String objectName, + String uploadId, + List completedParts) { + + // The ID of your GCP project + // String projectId = "your-project-id"; + + // The ID of your GCS bucket + // String bucketName = "your-unique-bucket-name"; + + // The ID of your GCS object + // String objectName = "your-object-name"; + + // The ID of the multipart upload + // String uploadId = "your-upload-id"; + + // The list of completed parts from the UploadPart responses. + // List completedParts = ...; + + HttpStorageOptions storageOptions = + HttpStorageOptions.newBuilder().setProjectId(projectId).build(); + MultipartUploadSettings mpuSettings = MultipartUploadSettings.of(storageOptions); + MultipartUploadClient mpuClient = MultipartUploadClient.create(mpuSettings); + + System.out.println("Completing multipart upload for " + objectName); + + CompletedMultipartUpload completedMultipartUpload = + CompletedMultipartUpload.builder().parts(completedParts).build(); + + CompleteMultipartUploadRequest completeRequest = + CompleteMultipartUploadRequest.builder() + .bucket(bucketName) + .key(objectName) + .uploadId(uploadId) + .multipartUpload(completedMultipartUpload) + .build(); + + CompleteMultipartUploadResponse completeResponse = + mpuClient.completeMultipartUpload(completeRequest); + + System.out.println( + "Upload complete for " + + completeResponse.key() + + " in bucket " + + completeResponse.bucket()); + System.out.println("Final ETag: " + completeResponse.etag()); + } +} diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/CreateMultipartUpload.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/CreateMultipartUpload.java new file mode 100644 index 000000000..eb05d2626 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/CreateMultipartUpload.java @@ -0,0 +1,32 @@ +package com.example.storage.multipartupload; + +import com.google.cloud.storage.HttpStorageOptions; +import com.google.cloud.storage.MultipartUploadClient; +import com.google.cloud.storage.MultipartUploadSettings; +import com.google.cloud.storage.multipartupload.model.CreateMultipartUploadRequest; +import com.google.cloud.storage.multipartupload.model.CreateMultipartUploadResponse; + +public class CreateMultipartUpload { + public static void createMultipartUpload(String projectId, String bucketName, String objectName) { + // The ID of your GCP project + // String projectId = "your-project-id"; + + // The ID of your GCS bucket + // String sourceBucketName = "your-unique-bucket-name"; + + // The ID of your GCS object + // String sourceObjectName = "your-object-name"; + + HttpStorageOptions storageOptions = + HttpStorageOptions.newBuilder().setProjectId(projectId).build(); + MultipartUploadSettings mpuSettings = MultipartUploadSettings.of(storageOptions); + MultipartUploadClient mpuClient = MultipartUploadClient.create(mpuSettings); + + System.out.println("Initiating multipart upload for " + objectName); + CreateMultipartUploadRequest createRequest = + CreateMultipartUploadRequest.builder().bucket(bucketName).key(objectName).build(); + CreateMultipartUploadResponse createResponse = mpuClient.createMultipartUpload(createRequest); + String uploadId = createResponse.uploadId(); + System.out.println("Upload ID: " + uploadId); + } +} diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/ListParts.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/ListParts.java new file mode 100644 index 000000000..a05646d3f --- /dev/null +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/ListParts.java @@ -0,0 +1,50 @@ +package com.example.storage.multipartupload; + +import com.google.cloud.storage.HttpStorageOptions; +import com.google.cloud.storage.MultipartUploadClient; +import com.google.cloud.storage.MultipartUploadSettings; +import com.google.cloud.storage.multipartupload.model.ListPartsRequest; +import com.google.cloud.storage.multipartupload.model.ListPartsResponse; +import com.google.cloud.storage.multipartupload.model.Part; + +public class ListParts { + public static void listParts( + String projectId, String bucketName, String objectName, String uploadId) { + // The ID of your GCP project + // String projectId = "your-project-id"; + + // The ID of your GCS bucket + // String bucketName = "your-unique-bucket-name"; + + // The ID of your GCS object + // String objectName = "your-object-name"; + + // The ID of the multipart upload + // String uploadId = "your-upload-id"; + + HttpStorageOptions storageOptions = + HttpStorageOptions.newBuilder().setProjectId(projectId).build(); + MultipartUploadSettings mpuSettings = MultipartUploadSettings.of(storageOptions); + MultipartUploadClient mpuClient = MultipartUploadClient.create(mpuSettings); + + System.out.println("Listing parts for upload ID: " + uploadId); + + ListPartsRequest listPartsRequest = + ListPartsRequest.builder().bucket(bucketName).key(objectName).uploadId(uploadId).build(); + + ListPartsResponse listPartsResponse = mpuClient.listParts(listPartsRequest); + + if (listPartsResponse.getParts() == null || listPartsResponse.getParts().isEmpty()) { + System.out.println("No parts have been uploaded yet."); + return; + } + + System.out.println("Uploaded Parts:"); + for (Part part : listPartsResponse.getParts()) { + System.out.println(" - Part Number: " + part.partNumber()); + System.out.println(" ETag: " + part.eTag()); + System.out.println(" Size: " + part.size() + " bytes"); + System.out.println(" Last Modified: " + part.lastModified()); + } + } +} diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/UploadPartFromFile.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/UploadPartFromFile.java new file mode 100644 index 000000000..bd3199478 --- /dev/null +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/UploadPartFromFile.java @@ -0,0 +1,80 @@ +package com.example.storage.multipartupload; + +import com.google.cloud.storage.HttpStorageOptions; +import com.google.cloud.storage.MultipartUploadClient; +import com.google.cloud.storage.MultipartUploadSettings; +import com.google.cloud.storage.RequestBody; +import com.google.cloud.storage.multipartupload.model.UploadPartRequest; +import com.google.cloud.storage.multipartupload.model.UploadPartResponse; +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.channels.FileChannel; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardOpenOption; + +public class UploadPartFromFile { + public static void uploadPartFromFile( + String projectId, String bucketName, String objectName, String uploadId, String filePath) + throws IOException { + // The ID of your GCP project + // String projectId = "your-project-id"; + + // The ID of your GCS bucket + // String bucketName = "your-unique-bucket-name"; + + // The ID of your GCS object + // String objectName = "your-object-name"; + + // The ID of the multipart upload + // String uploadId = "your-upload-id"; + + // The path to the file to upload + // String filePath = "/path/to/your/file.txt"; + + HttpStorageOptions storageOptions = + HttpStorageOptions.newBuilder().setProjectId(projectId).build(); + MultipartUploadSettings mpuSettings = MultipartUploadSettings.of(storageOptions); + MultipartUploadClient mpuClient = MultipartUploadClient.create(mpuSettings); + + // The minimum part size for a multipart upload is 5 MiB, except for the last part. + // We are using 8MiB as our part size. You can change this to a different value + // to optimize for performance. + int partSize = 5 * 1024 * 1024; + + Path path = Paths.get(filePath); + long fileSize = Files.size(path); + long partCount = (long) Math.ceil((double) fileSize / partSize); + System.out.println("File will be uploaded in " + partCount + " parts."); + + try (FileChannel channel = FileChannel.open(path, StandardOpenOption.READ)) { + ByteBuffer buffer = ByteBuffer.allocate(partSize); + for (int partNumber = 1; partNumber <= partCount; partNumber++) { + buffer.clear(); + int bytesRead = channel.read(buffer); + buffer.flip(); + + // The RewindableContent is important for retrying failed uploads. + RequestBody requestBody = RequestBody.of(buffer.slice(0, bytesRead)); + + System.out.println("Uploading part " + partNumber); + UploadPartRequest uploadPartRequest = + UploadPartRequest.builder() + .bucket(bucketName) + .key(objectName) + .partNumber(partNumber) + .uploadId(uploadId) + .build(); + + UploadPartResponse uploadPartResponse = + mpuClient.uploadPart(uploadPartRequest, requestBody); + + System.out.println( + "Part " + partNumber + " uploaded with ETag: " + uploadPartResponse.eTag()); + } + } + + System.out.println("All parts uploaded."); + } +} From 2dc2d0a635419bc3a2e48afa6359fff2a7857ec9 Mon Sep 17 00:00:00 2001 From: nidhiii-27 Date: Tue, 4 Nov 2025 17:59:39 +0530 Subject: [PATCH 2/4] add region tags and copyright headers --- .../multipartupload/AbortMultipartUpload.java | 20 +++++++++++++++- .../CompleteMultipartUpload.java | 19 +++++++++++++++ .../CreateMultipartUpload.java | 19 +++++++++++++++ .../storage/multipartupload/ListParts.java | 19 +++++++++++++++ .../multipartupload/UploadPartFromFile.java | 24 +++++++++++++++---- 5 files changed, 96 insertions(+), 5 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java index ccf54e942..ee9c68d59 100644 --- a/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java @@ -1,5 +1,23 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.example.storage.multipartupload; +// [START storage_abort_multipart_upload] + import com.google.cloud.storage.HttpStorageOptions; import com.google.cloud.storage.MultipartUploadClient; import com.google.cloud.storage.MultipartUploadSettings; @@ -28,7 +46,6 @@ public static void abortMultipartUpload(String projectId, String bucketName, Str CreateMultipartUploadRequest.builder().bucket(bucketName).key(objectName).build(); CreateMultipartUploadResponse createResponse = mpuClient.createMultipartUpload(createRequest); String uploadId = createResponse.uploadId().trim(); - System.out.println("Upload ID to be aborted: " + uploadId); System.out.println("Aborting multipart upload: " + uploadId); AbortMultipartUploadRequest abortRequest = @@ -43,3 +60,4 @@ public static void abortMultipartUpload(String projectId, String bucketName, Str System.out.println("Multipart upload with ID " + uploadId + " has been successfully aborted."); } } +// [END storage_abort_multipart_upload] \ No newline at end of file diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/CompleteMultipartUpload.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/CompleteMultipartUpload.java index ffd0bf4a0..8962e4c2e 100644 --- a/samples/snippets/src/main/java/com/example/storage/multipartupload/CompleteMultipartUpload.java +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/CompleteMultipartUpload.java @@ -1,5 +1,23 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.example.storage.multipartupload; +// [START storage_complete_multipart_upload] + import com.google.cloud.storage.HttpStorageOptions; import com.google.cloud.storage.MultipartUploadClient; import com.google.cloud.storage.MultipartUploadSettings; @@ -61,3 +79,4 @@ public static void completeMultipartUpload( System.out.println("Final ETag: " + completeResponse.etag()); } } +// [END storage_complete_multipart_upload] \ No newline at end of file diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/CreateMultipartUpload.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/CreateMultipartUpload.java index eb05d2626..d9c189cec 100644 --- a/samples/snippets/src/main/java/com/example/storage/multipartupload/CreateMultipartUpload.java +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/CreateMultipartUpload.java @@ -1,5 +1,23 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.example.storage.multipartupload; +// [START storage_create_multipart_upload] + import com.google.cloud.storage.HttpStorageOptions; import com.google.cloud.storage.MultipartUploadClient; import com.google.cloud.storage.MultipartUploadSettings; @@ -30,3 +48,4 @@ public static void createMultipartUpload(String projectId, String bucketName, St System.out.println("Upload ID: " + uploadId); } } +// [END storage_create_multipart_upload] \ No newline at end of file diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/ListParts.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/ListParts.java index a05646d3f..f1457cd9a 100644 --- a/samples/snippets/src/main/java/com/example/storage/multipartupload/ListParts.java +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/ListParts.java @@ -1,5 +1,23 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.example.storage.multipartupload; +// [START storage_list_parts] + import com.google.cloud.storage.HttpStorageOptions; import com.google.cloud.storage.MultipartUploadClient; import com.google.cloud.storage.MultipartUploadSettings; @@ -48,3 +66,4 @@ public static void listParts( } } } +// [END storage_list_parts] \ No newline at end of file diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/UploadPartFromFile.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/UploadPartFromFile.java index bd3199478..23d76f106 100644 --- a/samples/snippets/src/main/java/com/example/storage/multipartupload/UploadPartFromFile.java +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/UploadPartFromFile.java @@ -1,5 +1,23 @@ +/* + * Copyright 2025 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.example.storage.multipartupload; +// [START storage_upload_part] + import com.google.cloud.storage.HttpStorageOptions; import com.google.cloud.storage.MultipartUploadClient; import com.google.cloud.storage.MultipartUploadSettings; @@ -39,9 +57,7 @@ public static void uploadPartFromFile( MultipartUploadClient mpuClient = MultipartUploadClient.create(mpuSettings); // The minimum part size for a multipart upload is 5 MiB, except for the last part. - // We are using 8MiB as our part size. You can change this to a different value - // to optimize for performance. - int partSize = 5 * 1024 * 1024; + int partSize = 8 * 1024 * 1024; Path path = Paths.get(filePath); long fileSize = Files.size(path); @@ -55,7 +71,6 @@ public static void uploadPartFromFile( int bytesRead = channel.read(buffer); buffer.flip(); - // The RewindableContent is important for retrying failed uploads. RequestBody requestBody = RequestBody.of(buffer.slice(0, bytesRead)); System.out.println("Uploading part " + partNumber); @@ -78,3 +93,4 @@ public static void uploadPartFromFile( System.out.println("All parts uploaded."); } } +// [END storage_upload_part] \ No newline at end of file From 3109c22a56fcd577110df0c1021effbdfb88c06c Mon Sep 17 00:00:00 2001 From: nidhiii-27 Date: Tue, 4 Nov 2025 18:00:30 +0530 Subject: [PATCH 3/4] formatting --- .../example/storage/multipartupload/AbortMultipartUpload.java | 2 +- .../storage/multipartupload/CompleteMultipartUpload.java | 2 +- .../example/storage/multipartupload/CreateMultipartUpload.java | 2 +- .../java/com/example/storage/multipartupload/ListParts.java | 2 +- .../com/example/storage/multipartupload/UploadPartFromFile.java | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java index ee9c68d59..ffbb4afb3 100644 --- a/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java @@ -60,4 +60,4 @@ public static void abortMultipartUpload(String projectId, String bucketName, Str System.out.println("Multipart upload with ID " + uploadId + " has been successfully aborted."); } } -// [END storage_abort_multipart_upload] \ No newline at end of file +// [END storage_abort_multipart_upload] diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/CompleteMultipartUpload.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/CompleteMultipartUpload.java index 8962e4c2e..bf277dc8b 100644 --- a/samples/snippets/src/main/java/com/example/storage/multipartupload/CompleteMultipartUpload.java +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/CompleteMultipartUpload.java @@ -79,4 +79,4 @@ public static void completeMultipartUpload( System.out.println("Final ETag: " + completeResponse.etag()); } } -// [END storage_complete_multipart_upload] \ No newline at end of file +// [END storage_complete_multipart_upload] diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/CreateMultipartUpload.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/CreateMultipartUpload.java index d9c189cec..e1eb2782c 100644 --- a/samples/snippets/src/main/java/com/example/storage/multipartupload/CreateMultipartUpload.java +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/CreateMultipartUpload.java @@ -48,4 +48,4 @@ public static void createMultipartUpload(String projectId, String bucketName, St System.out.println("Upload ID: " + uploadId); } } -// [END storage_create_multipart_upload] \ No newline at end of file +// [END storage_create_multipart_upload] diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/ListParts.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/ListParts.java index f1457cd9a..d887ce389 100644 --- a/samples/snippets/src/main/java/com/example/storage/multipartupload/ListParts.java +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/ListParts.java @@ -66,4 +66,4 @@ public static void listParts( } } } -// [END storage_list_parts] \ No newline at end of file +// [END storage_list_parts] diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/UploadPartFromFile.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/UploadPartFromFile.java index 23d76f106..18b6d2372 100644 --- a/samples/snippets/src/main/java/com/example/storage/multipartupload/UploadPartFromFile.java +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/UploadPartFromFile.java @@ -93,4 +93,4 @@ public static void uploadPartFromFile( System.out.println("All parts uploaded."); } } -// [END storage_upload_part] \ No newline at end of file +// [END storage_upload_part] From 63178067039efac31c7e29d7ac1f7db4ea59ffa4 Mon Sep 17 00:00:00 2001 From: nidhiii-27 Date: Tue, 4 Nov 2025 18:12:15 +0530 Subject: [PATCH 4/4] edit AbortMultipartUpload sample --- .../multipartupload/AbortMultipartUpload.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java b/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java index ffbb4afb3..9cb921232 100644 --- a/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java +++ b/samples/snippets/src/main/java/com/example/storage/multipartupload/AbortMultipartUpload.java @@ -22,11 +22,10 @@ import com.google.cloud.storage.MultipartUploadClient; import com.google.cloud.storage.MultipartUploadSettings; import com.google.cloud.storage.multipartupload.model.AbortMultipartUploadRequest; -import com.google.cloud.storage.multipartupload.model.CreateMultipartUploadRequest; -import com.google.cloud.storage.multipartupload.model.CreateMultipartUploadResponse; public class AbortMultipartUpload { - public static void abortMultipartUpload(String projectId, String bucketName, String objectName) { + public static void abortMultipartUpload( + String projectId, String bucketName, String objectName, String uploadId) { // The ID of your GCP project // String projectId = "your-project-id"; @@ -36,17 +35,14 @@ public static void abortMultipartUpload(String projectId, String bucketName, Str // The ID of your GCS object // String objectName = "your-object-name"; + // The ID of the multipart upload + // String uploadId = "your-upload-id"; + HttpStorageOptions storageOptions = HttpStorageOptions.newBuilder().setProjectId(projectId).build(); MultipartUploadSettings mpuSettings = MultipartUploadSettings.of(storageOptions); MultipartUploadClient mpuClient = MultipartUploadClient.create(mpuSettings); - System.out.println("Initiating a multipart upload to abort for " + objectName); - CreateMultipartUploadRequest createRequest = - CreateMultipartUploadRequest.builder().bucket(bucketName).key(objectName).build(); - CreateMultipartUploadResponse createResponse = mpuClient.createMultipartUpload(createRequest); - String uploadId = createResponse.uploadId().trim(); - System.out.println("Aborting multipart upload: " + uploadId); AbortMultipartUploadRequest abortRequest = AbortMultipartUploadRequest.builder()