

import os
import multiprocessing
import sys

# 需要从官网上下载对应的sdk
sys.path.insert(0, '/root/paddle/bce-python-sdk-0.8.73')

#从Python SDK导入BOS配置管理模块以及安全认证模块
from baidubce.bce_client_configuration import BceClientConfiguration
from baidubce.auth.bce_credentials import BceCredentials
 
#导入BOS相关模块
from baidubce import exception
from baidubce.services import bos
from baidubce.services.bos import canned_acl
from baidubce.services.bos.bos_client import BosClient

def upload_handle(file_name, bucket_name):
    print(f'upload {file_name} ...')
    #设置BosClient的Host，Access Key ID和Secret Access Key
    bos_host = "paddlenlp.bj.bcebos.com"
    # AK:10b354ff6588425a9b95c441f82d6e57
    # SK:8230a6f87e464754b5957137c798f334
    
    access_key_id = "10b354ff6588425a9b95c441f82d6e57"
    secret_access_key = "8230a6f87e464754b5957137c798f334"

    config = BceClientConfiguration(credentials=BceCredentials(
        access_key_id, secret_access_key),
                                    endpoint=bos_host)
    bos_client = BosClient(config)
    upload_id = bos_client.initiate_multipart_upload(bucket_name,
                                                     file_name).upload_id
 
    fsize = os.path.getsize(file_name)
    fsize = fsize / float(1024 * 1024)
    if fsize < 200:
        chunk_size = 10
    else:
        chunk_size = 100
 
    result = bos_client.put_super_obejct_from_file(
        bucket_name,
        file_name,
        file_name,
        chunk_size=100,
        thread_num=multiprocessing.cpu_count())
    if result:
        print("Upload success!")
    else:
        print("Upload fail!")

    
for file in ['auto_dist0.pdiparams']:
    upload_handle(
        file_name=file,
        bucket_name='/models/community/bigscience/bloom/float16'
        
    )
