Storage Batch Create Job

Create a storage batch operations job

Explore further

For detailed documentation that includes this code sample, see the following:

Code sample

C++

For more information, see the Cloud Storage C++ API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  []( 
 google 
 :: 
 cloud 
 :: 
 storagebatchoperations_v1 
 :: 
 StorageBatchOperationsClient 
  
 client 
 , 
  
 std 
 :: 
 string 
  
 const 
&  
 project_id 
 , 
  
 std 
 :: 
 string 
  
 const 
&  
 job_id 
 , 
  
 std 
 :: 
 string 
  
 const 
&  
 target_bucket_name 
 , 
  
 std 
 :: 
 string 
  
 const 
&  
 object_prefix 
 ) 
  
 { 
  
 auto 
  
 const 
  
 parent 
  
 = 
  
 std 
 :: 
 string 
 { 
 "projects/" 
 } 
  
 + 
  
 project_id 
  
 + 
  
 "/locations/global" 
 ; 
  
 namespace 
  
 sbo 
  
 = 
  
 google 
 :: 
 cloud 
 :: 
 storagebatchoperations 
 :: 
 v1 
 ; 
  
 sbo 
 :: 
 Job 
  
 job 
 ; 
  
 sbo 
 :: 
 BucketList 
 * 
  
 bucket_list 
  
 = 
  
 job 
 . 
 mutable_bucket_list 
 (); 
  
 sbo 
 :: 
 BucketList 
 :: 
 Bucket 
 * 
  
 bucket_config 
  
 = 
  
 bucket_list 
 - 
> add_buckets 
 (); 
  
 bucket_config 
 - 
> set_bucket 
 ( 
 target_bucket_name 
 ); 
  
 sbo 
 :: 
 PrefixList 
 * 
  
 prefix_list_config 
  
 = 
  
 bucket_config 
 - 
> mutable_prefix_list 
 (); 
  
 prefix_list_config 
 - 
> add_included_object_prefixes 
 ( 
 object_prefix 
 ); 
  
 sbo 
 :: 
 DeleteObject 
 * 
  
 delete_object_config 
  
 = 
  
 job 
 . 
 mutable_delete_object 
 (); 
  
 delete_object_config 
 - 
> set_permanent_object_deletion_enabled 
 ( 
 false 
 ); 
  
 auto 
  
 result 
  
 = 
  
 client 
 . 
 CreateJob 
 ( 
 parent 
 , 
  
 job 
 , 
  
 job_id 
 ). 
 get 
 (); 
  
 if 
  
 ( 
 ! 
 result 
 ) 
  
 throw 
  
 result 
 . 
 status 
 (); 
  
 std 
 :: 
 cout 
 << 
 "Created job: " 
 << 
 result 
 - 
> name 
 () 
 << 
 " 
 \n 
 " 
 ; 
 } 
 

PHP

For more information, see the Cloud Storage PHP API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  use Google\Cloud\StorageBatchOperations\V1\Client\StorageBatchOperationsClient; 
 use Google\Cloud\StorageBatchOperations\V1\CreateJobRequest; 
 use Google\Cloud\StorageBatchOperations\V1\Job; 
 use Google\Cloud\StorageBatchOperations\V1\BucketList; 
 use Google\Cloud\StorageBatchOperations\V1\BucketList\Bucket; 
 use Google\Cloud\StorageBatchOperations\V1\PrefixList; 
 use Google\Cloud\StorageBatchOperations\V1\DeleteObject; 
 /** 
 * Create a new batch job. 
 * 
 * @param string $projectId Your Google Cloud project ID. 
 *        (e.g. 'my-project-id') 
 * @param string $jobId A unique identifier for this job. 
 *        (e.g. '94d60cc1-2d95-41c5-b6e3-ff66cd3532d5') 
 * @param string $bucketName The name of your Cloud Storage bucket to operate on. 
 *        (e.g. 'my-bucket') 
 * @param string $objectPrefix The prefix of objects to include in the operation. 
 *        (e.g. 'prefix1') 
 */ 
 function create_job(string $projectId, string $jobId, string $bucketName, string $objectPrefix): void 
 { 
 // Create a client. 
 $storageBatchOperationsClient = new StorageBatchOperationsClient(); 
 $parent = $storageBatchOperationsClient->locationName($projectId, 'global'); 
 $prefixListConfig = new PrefixList(['included_object_prefixes' => [$objectPrefix]]); 
 $bucket = new Bucket(['bucket' => $bucketName, 'prefix_list' => $prefixListConfig]); 
 $bucketList = new BucketList(['buckets' => [$bucket]]); 
 $deleteObject = new DeleteObject(['permanent_object_deletion_enabled' => false]); 
 $job = new Job(['bucket_list' => $bucketList, 'delete_object' => $deleteObject]); 
 $request = new CreateJobRequest([ 
 'parent' => $parent, 
 'job_id' => $jobId, 
 'job' => $job, 
 ]); 
 $response = $storageBatchOperationsClient->createJob($request); 
 printf('Created job: %s', $response->getName()); 
 } 
 

Ruby

For more information, see the Cloud Storage Ruby API reference documentation .

To authenticate to Cloud Storage, set up Application Default Credentials. For more information, see Set up authentication for client libraries .

  require 
  
 "google/cloud/storage_batch_operations" 
 # Creates a Storage Batch Operations job to delete objects in a bucket 
 # that match a given prefix. The deletion is a "soft delete", meaning 
 # objects can be recovered if versioning is enabled on the bucket. 
 # 
 # @param bucket_name [String] The name of the Google Cloud Storage bucket. 
 # @param prefix [String] The prefix of the objects to be included in the job. 
 #   The job will operate on all objects whose names start with this prefix. 
 # @param job_id [String] A unique identifier for the job. 
 # @param project_id [String] The ID of the Google Cloud project where the job will be created. 
 # 
 # @example 
 #   create_job( 
 #     bucket_name: "your-unique-bucket-name", 
 #     prefix: "test-files/", 
 #     job_id: "your-job-id", 
 #     project_id: "your-project-id" 
 #   ) 
 # 
 def 
  
 create_job 
  
 bucket_name 
 :, 
  
 prefix 
 :, 
  
 job_id 
 :, 
  
 project_id 
 : 
  
 client 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
  StorageBatchOperations 
 
 . 
  storage_batch_operations 
 
  
 parent 
  
 = 
  
 "projects/ 
 #{ 
 project_id 
 } 
 /locations/global" 
  
 prefix_list 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
  StorageBatchOperations 
 
 :: 
  V1 
 
 :: 
 PrefixList 
 . 
 new 
 ( 
  
 included_object_prefixes 
 : 
  
 [ 
 prefix 
 ] 
  
 ) 
  
 bucket 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
  StorageBatchOperations 
 
 :: 
  V1 
 
 :: 
 BucketList 
 :: 
 Bucket 
 . 
 new 
 ( 
  
 bucket 
 : 
  
 bucket_name 
 , 
  
 prefix_list 
 : 
  
 prefix_list 
  
 ) 
  
 bucket_list 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
  StorageBatchOperations 
 
 :: 
  V1 
 
 :: 
 BucketList 
 . 
 new 
 ( 
  
 buckets 
 : 
  
 [ 
 bucket 
 ] 
  
 ) 
  
 # Define the delete operation 
  
 delete_object 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
  StorageBatchOperations 
 
 :: 
  V1 
 
 :: 
 DeleteObject 
 . 
 new 
 ( 
  
 permanent_object_deletion_enabled 
 : 
  
 false 
  
 ) 
  
 # Build the job 
  
 job 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
  StorageBatchOperations 
 
 :: 
  V1 
 
 :: 
 Job 
 . 
 new 
 ( 
  
 bucket_list 
 : 
  
 bucket_list 
 , 
  
 delete_object 
 : 
  
 delete_object 
  
 ) 
  
 request 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
  StorageBatchOperations 
 
 :: 
  V1 
 
 :: 
 CreateJobRequest 
 . 
 new 
  
 parent 
 : 
  
 parent 
 , 
  
 job_id 
 : 
  
 job_id 
 , 
  
 job 
 : 
  
 job 
  
 create_job_operation 
  
 = 
  
 client 
 . 
 create_job 
  
 request 
  
 # To fetch job details using get_job to confirm creation 
  
 get_request 
  
 = 
  
 Google 
 :: 
 Cloud 
 :: 
  StorageBatchOperations 
 
 :: 
  V1 
 
 :: 
 GetJobRequest 
 . 
 new 
  
 name 
 : 
  
 " 
 #{ 
 parent 
 } 
 /jobs/ 
 #{ 
 job_id 
 } 
 " 
  
 begin 
  
 ## Waiting for operation to complete 
  
 create_job_operation 
 . 
 wait_until_done! 
  
 ## Fetch the newly created job to confirm creation 
  
 job_detail 
  
 = 
  
 client 
 . 
 get_job 
  
 get_request 
  
 message 
  
 = 
  
 "Storage Batch Operations job 
 #{ 
 job_detail 
 . 
 name 
 } 
 is created." 
  
 rescue 
  
 StandardError 
  
 # This error is thrown when the job is not created. 
  
 message 
  
 = 
  
 "Failed to create job 
 #{ 
 job_id 
 } 
 . Error: 
 #{ 
 create_job_operation 
 . 
 error 
 . 
 message 
 } 
 " 
  
 end 
  
 puts 
  
 message 
 end 
 

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser .

Design a Mobile Site
View Site in Mobile | Classic
Share by: