Add Google Cloud Storage file sink
Implemented the GCS sink half of SeaTunnel's cloud-storage connector using the existing file sink architecture and the GCS source's authentication and Hadoop configuration.
apache/seatunnel · #12146
Cloud connector feature
SeaTunnel can now write partitioned, multi-table datasets to Google Cloud Storage with shared file formats, save modes, and guarded commit behavior.
Problem
SeaTunnel supported reading files from GCS but had no matching sink. Users could not write through the platform's shared file formats, partitioning, multiple-table handling, or save-mode lifecycle, and destructive modes needed protection from bucket-root destinations.
Approach
Registers `GcsFile` as a sink, adds thin sink factory and catalog integrations, and reuses the shared writer and commit machinery. Recursive existing-data checks stop after the first result, while normalized and table-resolved bucket-root paths are rejected for destructive save modes.
Impact and scope
- Completes bidirectional GCS file movement for SeaTunnel pipelines without introducing another connector module or dependency stack.
- Protects users from bucket-wide deletion when `DROP_DATA` or `RECREATE_SCHEMA` resolves to a root path.
- Supports partitioning, multiple tables, replace workflows, and documented staging semantics through the common file connector architecture.
Validation
- Passed 301 Java 8 unit tests; Java 11 passed all 28 GCS tests and six shared filesystem proxy tests.
- The 66-module E2E reactor passed four emulator scenarios covering source reads plus partitioned sink write, replacement, and readback on Zeta and Spark 3.3.
- A SeaTunnel maintainer approved the feature; all final checks passed and the GitHub-verified merge commit credits Goutam Adwant.