Skip to content

Commit efc160d

Browse files
committed
feat(ingestor): Add flag to enable requester pays
1 parent 51eb26b commit efc160d

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

lib/ingestor-api/runtime/src/config.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ class Settings(BaseSettings):
2424
description="ARN of AWS Role used to validate access to S3 data"
2525
)
2626

27+
requester_pays: Optional[bool] = Field(
28+
description="Path from where to serve this URL.", default=False
29+
)
30+
2731
class Config(AwsSsmSourceConfig):
2832
env_file = ".env"
2933

lib/ingestor-api/runtime/src/validators.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,15 @@ def s3_object_is_accessible(bucket: str, key: str):
2424
"""
2525
Ensure we can send HEAD requests to S3 objects.
2626
"""
27+
from .main import settings
28+
2729
client = boto3.client("s3", **get_s3_credentials())
2830
try:
29-
client.head_object(Bucket=bucket, Key=key)
31+
client.head_object(
32+
Bucket=bucket,
33+
Key=key,
34+
**{"RequestPayer": "requester"} if settings.requester_pays else {},
35+
)
3036
except client.exceptions.ClientError as e:
3137
raise ValueError(
3238
f"Asset not accessible: {e.__dict__['response']['Error']['Message']}"

0 commit comments

Comments
 (0)