'Start fetching object data to ensure that the first segment (if any) is
valid. This is to catch cases like "first segment is missing" or
"first segment\'s etag doesn\'t match manifest".
Note: this does not validate that you have any segments. A
zero-segment large object is not erroneous; it is just empty.'

def validate_first_segment(self):

    if self.validated_first_segment:
        return
    self.validated_first_segment = True
    try:
        self.peeked_chunk = next(self.app_iter)
    except StopIteration:
        pass
