code: def delete_key(self, key_name, headers=None,
                     version_id=None, mfa_token=None, callback=None):
          
          provider = self.connection.provider
          if version_id:
              query_args = 'versionId=%s' % version_id
          else:
              query_args = None
          if mfa_token:
              if not headers:
                  headers = {}
              headers[provider.mfa_header] = ' '.join(mfa_token)
          def key_deleted(response):
              body = response.read()
              if response.status != 204:
                  raise provider.storage_response_error(response.status,
                                                        response.reason, body)
              if callable(callback):
                  callback(True)
          self.connection.make_request('DELETE', self.name, key_name,
                                       headers=headers,
                                       query_args=query_args, callback=key_deleted)
docs: Deletes a key from the bucket.  If a version_id is provided,
          only that version of the key will be deleted.
          
          :type key_name: string
          :param key_name: The key name to delete
  
          :type version_id: string
          :param version_id: The version ID (optional)
          
          :type mfa_token: tuple or list of strings
          :param mfa_token: A tuple or list consisting of the serial number
                            from the MFA device and the current value of
                            the six-digit token associated with the device.
                            This value is required anytime you are
                            deleting versioned objects from a bucket
                            that has the MFADelete option on the bucket.