Чтобы загрузить папку в корзину 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. Вы можете выбрать метод, который лучше всего соответствует вашим требованиям.