@@ -99,6 +99,17 @@ def remove_bucket_label(bucket_name):
9999 pprint .pprint (bucket .labels )
100100
101101
102+ # [START storage_list_buckets]
103+ def list_buckets ():
104+ """Lists all buckets."""
105+ storage_client = storage .Client ()
106+ buckets = storage_client .list_buckets ()
107+
108+ for bucket in buckets :
109+ print (bucket .name )
110+ # [END storage_list_buckets]
111+
112+
102113def list_blobs (bucket_name ):
103114 """Lists all the blobs in the bucket."""
104115 storage_client = storage .Client ()
@@ -352,58 +363,164 @@ def copy_blob(bucket_name, blob_name, new_bucket_name, new_blob_name):
352363 destination_bucket .name ))
353364
354365
366+ def bucket_commands (args ):
367+ if args .command == 'list-buckets' :
368+ list_buckets ()
369+ elif args .command == 'create-bucket' :
370+ create_bucket (args .bucket_name )
371+ elif args .command == 'enable-default-kms-key' :
372+ enable_default_kms_key (args .bucket_name , args .kms_key_name )
373+ elif args .command == 'delete-bucket' :
374+ delete_bucket (args .bucket_name )
375+ elif args .command == 'get-bucket-labels' :
376+ get_bucket_labels (args .bucket_name )
377+ elif args .command == 'add-bucket-label' :
378+ add_bucket_label (args .bucket_name )
379+ elif args .command == 'remove-bucket-label' :
380+ remove_bucket_label (args .bucket_name )
381+
382+
383+ def blob_commands (args ):
384+ if args .command == 'list' :
385+ list_blobs (args .bucket_name )
386+ elif args .command == 'list-with-prefix' :
387+ list_blobs_with_prefix (args .bucket_name , args .prefix , args .delimiter )
388+ elif args .command == 'upload' :
389+ upload_blob (
390+ args .bucket_name ,
391+ args .source_file_name ,
392+ args .destination_blob_name )
393+ elif args .command == 'upload-with-kms-key' :
394+ upload_blob_with_kms (
395+ args .bucket_name ,
396+ args .source_file_name ,
397+ args .destination_blob_name ,
398+ args .kms_key_name )
399+ elif args .command == 'download' :
400+ download_blob (
401+ args .bucket_name ,
402+ args .source_blob_name ,
403+ args .destination_file_name )
404+ elif args .command == 'delete' :
405+ delete_blob (args .bucket_name , args .blob_name )
406+ elif args .command == 'metadata' :
407+ blob_metadata (args .bucket_name , args .blob_name )
408+ elif args .command == 'make-public' :
409+ make_blob_public (args .bucket_name , args .blob_name )
410+ elif args .command == 'signed-url' :
411+ generate_signed_url (args .bucket_name , args .blob_name )
412+ elif args .command == 'signed-url-download-v4' :
413+ generate_download_signed_url_v4 (args .bucket_name , args .blob_name )
414+ elif args .command == 'signed-url-upload-v4' :
415+ generate_upload_signed_url_v4 (args .bucket_name , args .blob_name )
416+ elif args .command == 'rename' :
417+ rename_blob (args .bucket_name , args .blob_name , args .new_name )
418+ elif args .command == 'copy' :
419+ copy_blob (
420+ args .bucket_name ,
421+ args .blob_name ,
422+ args .new_bucket_name ,
423+ args .new_blob_name )
424+
425+
355426def main ():
356427 parser = argparse .ArgumentParser (
357428 description = __doc__ ,
358429 formatter_class = argparse .RawDescriptionHelpFormatter )
359- parser .add_argument ('bucket_name' , help = 'Your cloud storage bucket.' )
360430
361431 subparsers = parser .add_subparsers (dest = 'command' )
362- subparsers .add_parser ('create-bucket' , help = create_bucket .__doc__ )
363- subparsers .add_parser ('delete-bucket' , help = delete_bucket .__doc__ )
364- subparsers .add_parser ('get-bucket-labels' , help = get_bucket_labels .__doc__ )
365- subparsers .add_parser ('add-bucket-label' , help = add_bucket_label .__doc__ )
366- subparsers .add_parser (
432+ list_buckets_parser = subparsers .add_parser (
433+ 'list-buckets' , help = list_buckets .__doc__ )
434+ list_buckets_parser .add_argument (
435+ 'bucket_name' , help = 'Your cloud storage bucket.' )
436+
437+ create_bucket_parser = subparsers .add_parser (
438+ 'create-bucket' , help = create_bucket .__doc__ )
439+ create_bucket_parser .add_argument (
440+ 'bucket_name' , help = 'Your cloud storage bucket.' )
441+
442+ delete_create_parser = subparsers .add_parser (
443+ 'delete-bucket' , help = delete_bucket .__doc__ )
444+ delete_create_parser .add_argument (
445+ 'bucket_name' , help = 'Your cloud storage bucket.' )
446+
447+ get_bucket_labels_parser = subparsers .add_parser (
448+ 'get-bucket-labels' , help = get_bucket_labels .__doc__ )
449+ get_bucket_labels_parser .add_argument (
450+ 'bucket_name' , help = 'Your cloud storage bucket.' )
451+
452+ add_bucket_label_parser = subparsers .add_parser (
453+ 'add-bucket-label' , help = add_bucket_label .__doc__ )
454+ add_bucket_label_parser .add_argument (
455+ 'bucket_name' , help = 'Your cloud storage bucket.' )
456+
457+ remove_bucket_label_parser = subparsers .add_parser (
367458 'remove-bucket-label' , help = remove_bucket_label .__doc__ )
368- subparsers .add_parser ('list' , help = list_blobs .__doc__ )
459+ remove_bucket_label_parser .add_argument (
460+ 'bucket_name' , help = 'Your cloud storage bucket.' )
461+
462+ list_blobs_parser = subparsers .add_parser (
463+ 'list' , help = list_blobs .__doc__ )
464+ list_blobs_parser .add_argument (
465+ 'bucket_name' , help = 'Your cloud storage bucket.' )
369466
370467 list_with_prefix_parser = subparsers .add_parser (
371468 'list-with-prefix' , help = list_blobs_with_prefix .__doc__ )
469+ list_with_prefix_parser .add_argument (
470+ 'bucket_name' , help = 'Your cloud storage bucket.' )
372471 list_with_prefix_parser .add_argument ('prefix' )
373472 list_with_prefix_parser .add_argument ('--delimiter' , default = None )
374473
375- upload_parser = subparsers .add_parser ('upload' , help = upload_blob .__doc__ )
474+ upload_parser = subparsers .add_parser (
475+ 'upload' , help = upload_blob .__doc__ )
476+ upload_parser .add_argument (
477+ 'bucket_name' , help = 'Your cloud storage bucket.' )
376478 upload_parser .add_argument ('source_file_name' )
377479 upload_parser .add_argument ('destination_blob_name' )
378480
379481 enable_default_kms_parser = subparsers .add_parser (
380482 'enable-default-kms-key' , help = enable_default_kms_key .__doc__ )
483+ enable_default_kms_parser .add_argument (
484+ 'bucket_name' , help = 'Your cloud storage bucket.' )
381485 enable_default_kms_parser .add_argument ('kms_key_name' )
382486
383487 upload_kms_parser = subparsers .add_parser (
384488 'upload-with-kms-key' , help = upload_blob_with_kms .__doc__ )
489+ upload_kms_parser .add_argument (
490+ 'bucket_name' , help = 'Your cloud storage bucket.' )
385491 upload_kms_parser .add_argument ('source_file_name' )
386492 upload_kms_parser .add_argument ('destination_blob_name' )
387493 upload_kms_parser .add_argument ('kms_key_name' )
388494
389495 download_parser = subparsers .add_parser (
390496 'download' , help = download_blob .__doc__ )
497+ download_parser .add_argument (
498+ 'bucket_name' , help = 'Your cloud storage bucket.' )
391499 download_parser .add_argument ('source_blob_name' )
392500 download_parser .add_argument ('destination_file_name' )
393501
394- delete_parser = subparsers .add_parser ('delete' , help = delete_blob .__doc__ )
502+ delete_parser = subparsers .add_parser (
503+ 'delete' , help = delete_blob .__doc__ )
504+ delete_parser .add_argument (
505+ 'bucket_name' , help = 'Your cloud storage bucket.' )
395506 delete_parser .add_argument ('blob_name' )
396507
397508 metadata_parser = subparsers .add_parser (
398509 'metadata' , help = blob_metadata .__doc__ )
510+ metadata_parser .add_argument (
511+ 'bucket_name' , help = 'Your cloud storage bucket.' )
399512 metadata_parser .add_argument ('blob_name' )
400513
401514 make_public_parser = subparsers .add_parser (
402515 'make-public' , help = make_blob_public .__doc__ )
516+ make_public_parser .add_argument (
517+ 'bucket_name' , help = 'Your cloud storage bucket.' )
403518 make_public_parser .add_argument ('blob_name' )
404519
405520 signed_url_parser = subparsers .add_parser (
406521 'signed-url' , help = generate_signed_url .__doc__ )
522+ signed_url_parser .add_argument (
523+ 'bucket_name' , help = 'Your cloud storage bucket.' )
407524 signed_url_parser .add_argument ('blob_name' )
408525
409526 signed_url_download_v4_parser = subparsers .add_parser (
@@ -414,69 +531,22 @@ def main():
414531 'signed-url-upload-v4' , help = generate_upload_signed_url_v4 .__doc__ )
415532 signed_url_upload_v4_parser .add_argument ('blob_name' )
416533
417- rename_parser = subparsers .add_parser ('rename' , help = rename_blob .__doc__ )
534+ rename_parser = subparsers .add_parser (
535+ 'rename' , help = rename_blob .__doc__ )
536+ rename_parser .add_argument (
537+ 'bucket_name' , help = 'Your cloud storage bucket.' )
418538 rename_parser .add_argument ('blob_name' )
419539 rename_parser .add_argument ('new_name' )
420540
421541 copy_parser = subparsers .add_parser ('copy' , help = rename_blob .__doc__ )
542+ copy_parser .add_argument ('bucket_name' , help = 'Your cloud storage bucket.' )
422543 copy_parser .add_argument ('blob_name' )
423544 copy_parser .add_argument ('new_bucket_name' )
424545 copy_parser .add_argument ('new_blob_name' )
425546
426547 args = parser .parse_args ()
427-
428- if args .command == 'create-bucket' :
429- create_bucket (args .bucket_name )
430- elif args .command == 'enable-default-kms-key' :
431- enable_default_kms_key (args .bucket_name , args .kms_key_name )
432- elif args .command == 'delete-bucket' :
433- delete_bucket (args .bucket_name )
434- elif args .command == 'get-bucket-labels' :
435- get_bucket_labels (args .bucket_name )
436- elif args .command == 'add-bucket-label' :
437- add_bucket_label (args .bucket_name )
438- elif args .command == 'remove-bucket-label' :
439- remove_bucket_label (args .bucket_name )
440- elif args .command == 'list' :
441- list_blobs (args .bucket_name )
442- elif args .command == 'list-with-prefix' :
443- list_blobs_with_prefix (args .bucket_name , args .prefix , args .delimiter )
444- elif args .command == 'upload' :
445- upload_blob (
446- args .bucket_name ,
447- args .source_file_name ,
448- args .destination_blob_name )
449- elif args .command == 'upload-with-kms-key' :
450- upload_blob_with_kms (
451- args .bucket_name ,
452- args .source_file_name ,
453- args .destination_blob_name ,
454- args .kms_key_name )
455- elif args .command == 'download' :
456- download_blob (
457- args .bucket_name ,
458- args .source_blob_name ,
459- args .destination_file_name )
460- elif args .command == 'delete' :
461- delete_blob (args .bucket_name , args .blob_name )
462- elif args .command == 'metadata' :
463- blob_metadata (args .bucket_name , args .blob_name )
464- elif args .command == 'make-public' :
465- make_blob_public (args .bucket_name , args .blob_name )
466- elif args .command == 'signed-url' :
467- generate_signed_url (args .bucket_name , args .blob_name )
468- elif args .command == 'signed-url-download-v4' :
469- generate_download_signed_url_v4 (args .bucket_name , args .blob_name )
470- elif args .command == 'signed-url-upload-v4' :
471- generate_upload_signed_url_v4 (args .bucket_name , args .blob_name )
472- elif args .command == 'rename' :
473- rename_blob (args .bucket_name , args .blob_name , args .new_name )
474- elif args .command == 'copy' :
475- copy_blob (
476- args .bucket_name ,
477- args .blob_name ,
478- args .new_bucket_name ,
479- args .new_blob_name )
548+ bucket_commands (args )
549+ blob_commands (args )
480550
481551
482552if __name__ == '__main__' :
0 commit comments