環境は以下です。
$ python3 --version
Python 3.10.4
コードは以下です。
import requests
import boto3
# s3の設定
BUCKET_NAME = 'your-bucket-name'
s3 = boto3.resource('s3')
bucket = s3.Bucket(BUCKET_NAME)
# 画像を直接保存
url = 'https://hogehoge.jpg'
res = requests.get(url, stream=True)
bucket.upload_fileobj(res.raw, "foo/bar/baz")
AWS EC2インスタンス上から実行するとして、
IAMロールでs3へのアクセス権限を設定したものをアタッチしておくか、aws configure
から認証情報の設定周りは済んでいる前提です。