support three download ways.