def METHOD_NAME(self, bucket, expires_in, key, check_exists=False):
    if check_exists and not self.exists(bucket, key):
        return None
    return self.client.generate_presigned_url(
        'get_object',
        Params={
            'Bucket': bucket,
            'Key': key
        },
        ExpiresIn=expires_in
    )