File size: 2,286 Bytes
7e14917
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/usr/bin/env python3
"""
创建或更新 Hugging Face 仓库
"""

import os
from pathlib import Path
from huggingface_hub import HfApi, login, create_repo

def create_and_upload():
    # 检查 token
    token = os.environ.get("HF_TOKEN")
    if not token:
        print("❌ 错误: 未设置 HF_TOKEN 环境变量!")
        print("请运行: export HF_TOKEN='你的token'")
        return False

    try:
        # 登录
        login(token=token)
        print("✅ 成功登录 Hugging Face")
        
        # 获取当前用户信息
        api = HfApi()
        user_info = api.whoami()
        username = user_info['name']
        print(f"👤 当前用户: {username}")
        
    except Exception as e:
        print(f"❌ 登录失败: {e}")
        return False

    # 仓库配置
    repo_name = "dbnet_res18_text_detection_v0.1"
    repo_id = f"{username}/{repo_name}"
    
    print(f"\n🔍 检查仓库: {repo_id}")
    
    # 尝试创建仓库(如果不存在)
    try:
        create_repo(
            repo_id=repo_id,
            repo_type="model",
            exist_ok=True,
            private=False
        )
        print(f"✅ 仓库已就绪: {repo_id}")
    except Exception as e:
        print(f"⚠️  仓库创建/检查: {e}")

    # 上传文件
    local_dir = Path(__file__).parent
    
    print(f"\n🚀 开始上传文件到: {repo_id}")
    
    try:
        from huggingface_hub import upload_folder
        
        # 上传整个文件夹
        upload_folder(
            folder_path=str(local_dir),
            repo_id=repo_id,
            repo_type="model",
            ignore_patterns=[
                "__pycache__/*",
                "*.pyc",
                ".git/*",
                "set_token.sh",
                "update_*.py",
                "update_*.sh"
            ],
            commit_message="Update DBNet model files"
        )
        
        print(f"\n✅ 上传成功!")
        print(f"🔗 查看仓库: https://huggingface.co/{repo_id}")
        return True
        
    except Exception as e:
        print(f"❌ 上传失败: {e}")
        import traceback
        traceback.print_exc()
        return False

if __name__ == "__main__":
    success = create_and_upload()
    exit(0 if success else 1)