File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -154,10 +154,25 @@ def delete_bucket(get_client, args):
154154
155155 parser .add_argument ('name' , metavar = 'NAME' , type = str ,
156156 help = "The name of the bucket to remove." )
157+ parser .add_argument ('--recursive' , action = "store_true" ,
158+ help = "If given, force removal of non-empty buckets by deleting "
159+ "all objects in the bucket before deleting the bucket. For "
160+ "large buckets, this may take a while." )
157161
158162 parsed = parser .parse_args (args )
159163 client = get_client ()
160164
165+ if parsed .recursive :
166+ try :
167+ bucket = client .get_bucket (parsed .name )
168+ except S3ResponseError :
169+ print ('No bucket named ' + parsed .name )
170+ sys .exit (2 )
171+
172+ for c in bucket .list ():
173+ print ("delete: {} {}" .format (parsed .name , c .key ))
174+ bucket .delete_key (c )
175+
161176 client .delete_bucket (parsed .name )
162177
163178 print ("Bucket {} removed" .format (parsed .name ))
You can’t perform that action at this time.
0 commit comments