A federal appeals court in San Francisco has upheld former Giants slugger Barry Bonds' obstruction of justice conviction.