import boto3

s3 = boto3.client('s3')  # picks up credentials from ~/.aws/credentials or env vars

bucket_name = 'your-bucket-name'

# Upload a PDF
s3.upload_file('local_document.pdf', bucket_name, 'docs/local_document.pdf')

# Upload a JPEG
s3.upload_file('local_image.jpg', bucket_name, 'images/local_image.jpg')

# Generate presigned URL for the PDF (valid 1 hour)
pdf_url = s3.generate_presigned_url(
    'get_object',
    Params={'Bucket': bucket_name, 'Key': 'docs/local_document.pdf'},
    ExpiresIn=3600
)
print("PDF URL:", pdf_url)

# Generate presigned URL for the JPEG
image_url = s3.generate_presigned_url(
    'get_object',


import boto3
import os

s3 = boto3.client('s3')
bucket_name = 'your-bucket-name'
local_folder = 'files_to_upload'

for filename in os.listdir(local_folder):
    local_path = os.path.join(local_folder, filename)
    if filename.lower().endswith('.pdf'):
        s3_key = f'docs/{filename}'
    elif filename.lower().endswith(('.jpg', '.jpeg')):
        s3_key = f'images/{filename}'
    else:
        continue  # skip other file types

    s3.upload_file(local_path, bucket_name, s3_key)
    print(f'Uploaded: {filename} -> {s3_key}')



s3.upload_file(
    'local_image.jpg', bucket_name, 'images/local_image.jpg',
    ExtraArgs={'ContentType': 'image/jpeg'}
)

s3.upload_file(
    'local_document.pdf', bucket_name, 'docs/local_document.pdf',
    ExtraArgs={'ContentType': 'application/pdf'}
)