Code
cookbook/11_models/google/gemini/s3_url_file_input.py
Copy
Ask AI
"""S3 pre-signed URL input with Gemini.
Pass files from S3 using pre-signed URLs without downloading.
Supports files up to 100MB. Requires Gemini 3.x models.
"""
import boto3
from agno.agent import Agent
from agno.media import File
from agno.models.google import Gemini
s3_client = boto3.client("s3")
presigned_url = s3_client.generate_presigned_url(
"get_object",
Params={
"Bucket": "agno-public",
"Key": "recipes/ThaiRecipes.pdf",
},
ExpiresIn=3600,
)
agent = Agent(
model=Gemini(id="gemini-3-flash-preview"),
markdown=True,
)
agent.print_response(
"What is this document about? Answer in one sentence.",
files=[
File(
url=presigned_url,
mime_type="application/pdf",
)
],
)
Usage
Set your credentials
Copy
Ask AI
export GOOGLE_API_KEY=xxx
export AWS_ACCESS_KEY_ID=xxx
export AWS_SECRET_ACCESS_KEY=xxx