首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用boto3高效地将大量文件上传到亚马逊S3?

如何使用boto3高效地将大量文件上传到亚马逊S3?
EN

Stack Overflow用户
提问于 2018-02-27 04:33:01
回答 1查看 3.1K关注 0票数 0

我的本地目录中有1000个10Mb的文件,我正在尝试通过顺序上传的方法使用boto3将其上传到亚马逊S3中的存储桶中。我在这里面临的唯一问题是,将大量文件上传到S3需要花费大量时间。我想知道是否有有效的方法(使用多线程或多处理)将文件上传到亚马逊S3?

代码语言:javascript
运行
复制
root_path ="/home/shivraj/folder/"

path = root_path+'folder_raw/' # use your path
dest_path = root_path+'folder_parsed/'
backup_path = root_path+'folder_backup/'


def parse_ivn_files():
    src_files_list = glob.glob(path + "*.txt.zip") # .log files in the path files
    try:
        if src_files_list:
            for file_ in src_files_list:
                df = pd.read_csv(file_,compression="zip",sep="|", header=None)
                file = file_.replace(path,'')
                file_name = file.replace(".txt.zip",'')
                df.columns=["Date","Time","System_Event","Event_Type","Event_sub_type","Latitude","Longitude","Field_1","Field_2","Field_3","Field_4","Event_Number","Event_Description"]  
                new_df=df['Event_Description'].str.split(',',expand=True)         
                large_df = pd.concat([df,new_df],axis=1)   
                large_df.to_csv(dest_path+file_name+".csv",index=False)
                s3.meta.client.upload_file(dest_path+file_name+".csv", 's3-bucket-name-here', 'ivn_parsed/'+file_name+".csv")
                s3.meta.client.upload_file(path+file_name+".txt.zip", 's3-bucket-name-here', 'ivn_raw_backup/'+file_name+"_bk.txt.zip")
                os.rename(path+file_name+".txt.zip", backup_path+file_name+"_bk.txt.zip")
        else:
            print("No files in the source folder")


    except:
            raise FileNotFoundError

EN

回答 1

Stack Overflow用户

发布于 2018-02-27 07:59:29

我选择s4cmd --这是一个很好的工具,可以并行上传你的文件,还解决了其他一些问题:

https://github.com/bloomreach/s4cmd

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48996637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档