diff --git a/airbyte-integrations/connectors/source-s3/metadata.yaml b/airbyte-integrations/connectors/source-s3/metadata.yaml index 1191a956bbf4..14871c0b58e3 100644 --- a/airbyte-integrations/connectors/source-s3/metadata.yaml +++ b/airbyte-integrations/connectors/source-s3/metadata.yaml @@ -10,7 +10,7 @@ data: connectorSubtype: file connectorType: source definitionId: 69589781-7828-43c5-9f63-8925b1c1ccc2 - dockerImageTag: 4.15.4 + dockerImageTag: 4.15.5 dockerRepository: airbyte/source-s3 documentationUrl: https://docs.airbyte.com/integrations/sources/s3 externalDocumentationUrls: diff --git a/airbyte-integrations/connectors/source-s3/pyproject.toml b/airbyte-integrations/connectors/source-s3/pyproject.toml index a4048cec6f33..1a2e70cfc56d 100644 --- a/airbyte-integrations/connectors/source-s3/pyproject.toml +++ b/airbyte-integrations/connectors/source-s3/pyproject.toml @@ -3,7 +3,7 @@ requires = [ "poetry-core>=1.0.0",] build-backend = "poetry.core.masonry.api" [tool.poetry] -version = "4.15.4" +version = "4.15.5" name = "source-s3" description = "Source implementation for S3." authors = [ "Airbyte ",] diff --git a/airbyte-integrations/connectors/source-s3/source_s3/v4/source.py b/airbyte-integrations/connectors/source-s3/source_s3/v4/source.py index 2a0b1a66ba8a..b31b737f4d5e 100644 --- a/airbyte-integrations/connectors/source-s3/source_s3/v4/source.py +++ b/airbyte-integrations/connectors/source-s3/source_s3/v4/source.py @@ -27,7 +27,7 @@ TraceType, Type, ) -from airbyte_cdk.sources.file_based.file_based_source import DEFAULT_CONCURRENCY, FileBasedSource +from airbyte_cdk.sources.file_based.file_based_source import FileBasedSource from source_s3.source import SourceS3Spec from source_s3.utils import airbyte_message_to_json from source_s3.v4.availability_strategy import SourceS3AvailabilityStrategy @@ -47,7 +47,7 @@ class SourceS3(FileBasedSource): - _concurrency_level = DEFAULT_CONCURRENCY + _concurrency_level = 20 @classmethod def read_config(cls, config_path: str) -> Mapping[str, Any]: diff --git a/airbyte-integrations/connectors/source-s3/unit_tests/v4/test_source.py b/airbyte-integrations/connectors/source-s3/unit_tests/v4/test_source.py index 04a23079910b..324b1f4d472b 100644 --- a/airbyte-integrations/connectors/source-s3/unit_tests/v4/test_source.py +++ b/airbyte-integrations/connectors/source-s3/unit_tests/v4/test_source.py @@ -52,3 +52,6 @@ def test_when_spec_then_v3_fields_descriptions_are_prefixed_with_deprecation_war def test_when_spec_then_v3_nested_fields_are_not_required(self) -> None: spec = self._source.spec() assert not spec.connectionSpecification["properties"]["provider"]["required"] + + def test_concurrency_level_is_capped(self) -> None: + assert SourceS3._concurrency_level == 20 diff --git a/docs/integrations/sources/s3.md b/docs/integrations/sources/s3.md index a3c4522f5b48..864ad0883898 100644 --- a/docs/integrations/sources/s3.md +++ b/docs/integrations/sources/s3.md @@ -356,6 +356,7 @@ This connector utilizes the open source [Unstructured](https://unstructured-io.g | Version | Date | Pull Request | Subject | |:------------|:-----------|:----------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------| +| 4.15.5 | 2026-05-25 | [78416](https://github.com/airbytehq/airbyte/pull/78416) | Cap concurrent file readers at 20 to prevent OOM on large S3 streams. | | 4.15.4 | 2026-05-14 | [78081](https://github.com/airbytehq/airbyte/pull/78081) | Updates the source-s3 Poetry lock file to use airbyte-cdk 7.19.1 for CSV column error. | | 4.15.3 | 2026-04-08 | [76162](https://github.com/airbytehq/airbyte/pull/76162) | Add opt-in `skip_full_check_for_parquet` stream option to skip the full parse check for Parquet files during CHECK, avoiding OOM on large files | | 4.15.2 | 2025-11-11 | [69268](https://github.com/airbytehq/airbyte/pull/69268) | Update dependencies |