|
112 | 112 | ReplicationConfigurationNotFoundError,
|
113 | 113 | RequestPayer,
|
114 | 114 | S3Api,
|
| 115 | + SelectObjectContentOutput, |
| 116 | + SelectObjectContentRequest, |
115 | 117 | SkipValidation,
|
116 | 118 | StorageClass,
|
117 | 119 | Token,
|
118 | 120 | )
|
119 | 121 | from localstack.aws.api.s3 import Type as GranteeType
|
120 | 122 | from localstack.aws.api.s3 import UploadPartOutput, UploadPartRequest, WebsiteConfiguration
|
| 123 | +from localstack.aws.forwarder import NotImplementedAvoidFallbackError |
121 | 124 | from localstack.aws.handlers import (
|
122 | 125 | modify_service_response,
|
123 | 126 | preprocess_request,
|
@@ -1555,6 +1558,17 @@ def get_bucket_logging(
|
1555 | 1558 |
|
1556 | 1559 | return GetBucketLoggingOutput(LoggingEnabled=moto_bucket.logging)
|
1557 | 1560 |
|
| 1561 | + @handler("SelectObjectContent", expand=False) |
| 1562 | + def select_object_content( |
| 1563 | + self, |
| 1564 | + context: RequestContext, |
| 1565 | + request: SelectObjectContentRequest, |
| 1566 | + ) -> SelectObjectContentOutput: |
| 1567 | + # this operation is currently implemented by moto, but raises a 500 error because of the format necessary, |
| 1568 | + # and streaming capability. |
| 1569 | + # avoid a fallback to moto and return the 501 to the client directly instead. |
| 1570 | + raise NotImplementedAvoidFallbackError |
| 1571 | + |
1558 | 1572 |
|
1559 | 1573 | def validate_bucket_analytics_configuration(
|
1560 | 1574 | id: AnalyticsId, analytics_configuration: AnalyticsConfiguration
|
|
0 commit comments