docs: def send_file(self, filename, mimetype=None, restricted=True,
                    checksum=None, trusted=False, chunk_size=None,
                    as_attachment=False):
          """Send the file to the client."""
          try:
              fp = self.open(mode='rb')
          except Exception as e:
              raise StorageError('Could not send file: {}'.format(e))
  
          try:
              md5_checksum = None
              if checksum:
                  algo, value = checksum.split(':')
                  if algo == 'md5':
                      md5_checksum = value
  
              # Send stream is responsible for closing the file.
              return send_stream(
                  fp,
                  filename,
                  self._size,
                  self._modified,
                  mimetype=mimetype,
                  restricted=restricted,
                  etag=checksum,
                  content_md5=md5_checksum,
                  chunk_size=chunk_size,
                  trusted=trusted,
                  as_attachment=as_attachment,
              )
          except Exception as e:
              fp.close()
              raise StorageError('Could not send file: {}'.format(e))