The GitHub Actions job "CI" on fluss.git/main has succeeded.
Run started by GitHub user leekeiabstraction (triggered by leekeiabstraction).

Head commit for run:
69eebd0fc456662327465475e7f6e2871043d9ea / ForwardXu <[email protected]>
feat: [FLUSS-2686] Add COS filesystem support (#2836)

* [FLUSS-2686] Add COS filesystem support

This adds a new fluss-fs-cos module that integrates Tencent Cloud COS
(Cloud Object Storage) as a remote filesystem for Fluss.

Key changes:
- Add fluss-fs-cos module with hadoop-cos and cos_api dependencies
- Implement COSFileSystem extending HadoopFileSystem (scheme: cosn)
- Implement COSFileSystemPlugin as FileSystemPlugin SPI
- Add security token support (COSSecurityTokenProvider/Receiver)
- Add DynamicTemporaryCOSCredentialsProvider for temporary credentials
- Add integration tests for COS filesystem behavior
- Register module in fluss-filesystems parent pom

* [FLUSS-2686] Add COS filesystem support

* fix some comments

* fix some comments

* Improve COS filesystem: fix STS token provider, add temporary credentials 
doc, and address review comments

* Fix parent POM version and update config

* [fluss-fs-cos] Fix NOTICE file: update outdated dependencies and add missing 
ones

* [filesystem] Address review comments for COS filesystem

- Rename Maven property fs.cosn.sdk.version to fs.hadoop.cos.version to 
accurately reflect that it is the hadoop-cos version rather than the Tencent 
Cloud COS SDK version.

- Align COSSecurityTokenProvider default token duration with OSS/OBS (30min -> 
1h).

- Add COSWithCredentialsProviderFileSystemBehaviorITCase to cover the 
CREDENTIALS_PROVIDER branch in COSFileSystemPlugin, reusing hadoop-cos's 
EnvironmentVariableCredentialsProvider.

* [cos] Rename COSN_ENDPOINT to COSN_ENDPOINT_SUFFIX for consistency with 
config key

* [filesystems] Address COS review: scope STS policy, drop duplicate COS SDK, 
fix docs

1. STS tokens scoped to remote.data.dir bucket: COSSecurityTokenProvider now 
derives a default policy that limits name/cos:* to the bucket (and prefix) 
parsed from fsUri. Users can override via fs.cosn.security.token.policy.

2. Drop duplicate COS SDK: exclude com.qcloud:cos_api-bundle from hadoop-cos so 
only the directly declared cos_api remains on the classpath, eliminating 902 
overlapping com.qcloud.cos.* classes during shade. NOTICE updated accordingly.

3. Docs: use the correct hadoop-cos provider class 
EnvironmentVariableCredentialsProvider and the correct env vars COSN_SECRET_ID 
/ COSN_SECRET_KEY.

4. Docs: align temporary credential lifetime with the code (1 hour, matches 
DEFAULT_DURATION_SECONDS=3600L).

5. Docs: remove trailing whitespace in 
website/docs/maintenance/filesystems/cos.md.

Report URL: https://github.com/apache/fluss/actions/runs/26621772847

With regards,
GitHub Actions via GitBox

Reply via email to