亚马逊 S3 下载当前文件夹下的所有内容

python实现

1. pip安装requests、boto3

2. python 代码:

# !/usr/bin/env python3.8
# -*- coding: utf-8 -*-
import os
import requests
import boto3


def download(file_path, pref):
    file_name = "/Users/current-user/Downloads/" + file_path.replace(pref, "")
    file_path = "https://bucket的url地址/" + file_path
    dir_path = file_name.replace(file_name.split("/")[-1], "")
    if not os.path.isdir(dir_path):
        os.makedirs(dir_path)

    r = requests.get(url=file_path, stream=True)
    if r.status_code == 200:
        with open(file_name, "wb") as f:
            f.write(r.content)


def get_list(pref):
    s3 = boto3.resource('s3', aws_access_key_id="",
                        aws_secret_access_key="")

    bucket = s3.Bucket('bucket name')

    key = pref
    obj_list = list(bucket.objects.filter(Prefix=key))

    for obj in obj_list:
        download(obj.key, pref)


if __name__ == '__main__':
    prefix = "bucket下面需要下载的当前目录地址/"
    get_list(prefix)

版权声明:本文为hxm6621315原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。