You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			78 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
		
		
			
		
	
	
			78 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
| 
								 
											9 years ago
										 
									 | 
							
								# Copyright 2013 The Chromium Authors. All rights reserved.
							 | 
						||
| 
								 | 
							
								# Use of this source code is governed by a BSD-style license that can be
							 | 
						||
| 
								 | 
							
								# found in the LICENSE file.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								DEPS = [
							 | 
						||
| 
								 | 
							
								  'gsutil',
							 | 
						||
| 
								 | 
							
								  'recipe_engine/path',
							 | 
						||
| 
								 | 
							
								]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def RunSteps(api):
							 | 
						||
| 
								 | 
							
								  """Move things around in a loop!"""
							 | 
						||
| 
								 | 
							
								  local_file = api.path['tmp_base'].join('boom')
							 | 
						||
| 
								 | 
							
								  bucket = 'example'
							 | 
						||
| 
								 | 
							
								  cloud_file = 'some/random/path/to/boom'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  api.gsutil.upload(local_file, bucket, cloud_file,
							 | 
						||
| 
								 | 
							
								      metadata={
							 | 
						||
| 
								 | 
							
								        'Test-Field': 'value',
							 | 
						||
| 
								 | 
							
								        'Remove-Me': None,
							 | 
						||
| 
								 | 
							
								        'x-custom-field': 'custom-value',
							 | 
						||
| 
								 | 
							
								        'Cache-Control': 'no-cache',
							 | 
						||
| 
								 | 
							
								      },
							 | 
						||
| 
								 | 
							
								      unauthenticated_url=True)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  # Upload without retry wrapper.
							 | 
						||
| 
								 | 
							
								  api.gsutil.upload(local_file, bucket, cloud_file,
							 | 
						||
| 
								 | 
							
								      metadata={
							 | 
						||
| 
								 | 
							
								        'Test-Field': 'value',
							 | 
						||
| 
								 | 
							
								        'Remove-Me': None,
							 | 
						||
| 
								 | 
							
								        'x-custom-field': 'custom-value',
							 | 
						||
| 
								 | 
							
								        'Cache-Control': 'no-cache',
							 | 
						||
| 
								 | 
							
								      },
							 | 
						||
| 
								 | 
							
								      unauthenticated_url=True,
							 | 
						||
| 
								 | 
							
								      parallel_upload=True,
							 | 
						||
| 
								 | 
							
								      multithreaded=True,
							 | 
						||
| 
								 | 
							
								      use_retry_wrapper=False)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  api.gsutil(['cp',
							 | 
						||
| 
								 | 
							
								                    'gs://%s/some/random/path/**' % bucket,
							 | 
						||
| 
								 | 
							
								                    'gs://%s/staging' % bucket])
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  api.gsutil(['cp',
							 | 
						||
| 
								 | 
							
								                    'gs://%s/some/random/path/**' % bucket,
							 | 
						||
| 
								 | 
							
								                    'gs://%s/staging' % bucket], version='3.25')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  api.gsutil.download_url(
							 | 
						||
| 
								 | 
							
								      'https://storage.cloud.google.com/' + bucket + '/' + cloud_file,
							 | 
						||
| 
								 | 
							
								      local_file,
							 | 
						||
| 
								 | 
							
								      name='gsutil download url')
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  # Non-normalized URL.
							 | 
						||
| 
								 | 
							
								  try:
							 | 
						||
| 
								 | 
							
								    api.gsutil.download_url(
							 | 
						||
| 
								 | 
							
								        'https://someotherservice.localhost',
							 | 
						||
| 
								 | 
							
								        local_file,
							 | 
						||
| 
								 | 
							
								        name='gsutil download url')
							 | 
						||
| 
								 | 
							
								  except AssertionError:
							 | 
						||
| 
								 | 
							
								    pass
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  new_cloud_file = 'staging/to/boom'
							 | 
						||
| 
								 | 
							
								  new_local_file = api.path['tmp_base'].join('erang')
							 | 
						||
| 
								 | 
							
								  api.gsutil.download(bucket, new_cloud_file, new_local_file)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  private_key_file = 'path/to/key'
							 | 
						||
| 
								 | 
							
								  _signed_url = api.gsutil.signurl(private_key_file, bucket, cloud_file,
							 | 
						||
| 
								 | 
							
								                                  name='signed url')
							 | 
						||
| 
								 | 
							
								  api.gsutil.remove_url('gs://%s/%s' % (bucket, new_cloud_file))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  api.gsutil.list('gs://%s/foo' % bucket)
							 | 
						||
| 
								 | 
							
								  api.gsutil.copy(bucket, cloud_file, bucket, new_cloud_file)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  api.gsutil.cat('gs://%s/foo' % bucket)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								def GenTests(api):
							 | 
						||
| 
								 | 
							
								  yield api.test('basic')
							 |