Методы загрузки папки в корзину S3 с использованием Python

Чтобы загрузить папку в корзину S3 с помощью Python, вы можете использовать AWS SDK для Python (Boto3). Вот несколько методов, которые вы можете использовать:

Метод 1: использование функции s3.upload_file()

import boto3
import os
def upload_folder_to_s3(local_folder_path, bucket_name, s3_folder_path):
    s3 = boto3.client('s3')
    for root, dirs, files in os.walk(local_folder_path):
        for file in files:
            local_file_path = os.path.join(root, file)
            s3_file_path = os.path.join(s3_folder_path, local_file_path[len(local_folder_path) + 1:])
            s3.upload_file(local_file_path, bucket_name, s3_file_path)

Метод 2: использование функции s3.sync()

import boto3
def upload_folder_to_s3(local_folder_path, bucket_name, s3_folder_path):
    s3 = boto3.client('s3')
    s3.sync(local_folder_path, f's3://{bucket_name}/{s3_folder_path}')

Метод 3: использование функции s3.meta.client.upload_file()

import boto3
def upload_folder_to_s3(local_folder_path, bucket_name, s3_folder_path):
    s3 = boto3.resource('s3')
    bucket = s3.Bucket(bucket_name)
    for subdir, dirs, files in os.walk(local_folder_path):
        for file in files:
            full_path = os.path.join(subdir, file)
            with open(full_path, 'rb') as data:
                s3_key = os.path.relpath(full_path, local_folder_path)
                bucket.upload_fileobj(data, f'{s3_folder_path}/{s3_key}')

Это всего лишь несколько способов загрузки папки в корзину S3 с помощью Python. Вы можете выбрать метод, который лучше всего соответствует вашим требованиям.