AWS-s3-python-boto3上传文件夹,保存文件夹格式

使用需要自己修改:

  • 用户名、 密码 、服务器地址 、指定的bucket
  • 本地上传哪个文件夹
  • 要上传到远端的路径
import os
from tqdm import tqdm
import botocore
import boto3
from boto3.session import Session
from loguru import logger
 
#基本配置,链接(用户名、密码)
aws_access_key_id = '你的name'
aws_secret_access_key = '你的secret'
session = Session(aws_access_key_id=aws_access_key_id, 
                  aws_secret_access_key=aws_secret_access_key)
 
 
#good: 使用client
s3 = session.client('s3',endpoint_url='你服务器的地址:9000')

# 下载一个文件夹,并且保存文件夹内的目录结果的函数
def upload_folder_to_s3(s3_client, s3_bucket, local_dir,s3_path):
    stream = tqdm(os.walk(input_dir))
    for path, subdirs, files in stream:
        for file in files:
            dest_path = path.replace(input_dir, "").replace(os.sep, '/')
            s3_file = f'{s3_path}/{dest_path}/{file}'.replace('//', '/')
            local_file = os.path.join(path, file)
            
            s3_client.upload_file(local_file, s3_bucket, s3_file) # 上传接口upload_file
            
            stream.set_description(f'Uploaded {local_file} to {s3_file}')
            
    print(f"Successfully uploaded {input_dir} to S3 {s3_path}")
 
 
if __name__ == "__main__":
    pass
    upload_folder_to_s3(s3,'test','/local/testdata/','/remote/testdata/')
    # test 是指定的buckername
    # /local/testdata   要上传的文件夹
    # /remote/testdata/ 是远端也就是s3 ,上传的位置,没有这个remote/testdata 这两个文件夹会自动创建

    
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值