Class KnoluxS3Template

java.lang.Object
com.knolux.s3.KnoluxS3Template

public class KnoluxS3Template extends Object
S3 非同步操作模板,封裝 Upload、Download、Delete。

提供三層 API 供不同場景使用:

靜態模式(Static)

使用 application.yml 設定的預設連線,適合固定部署環境:

s3Template.upload("my-bucket", "path/to/file.jpg", body);
s3Template.download("my-bucket", "path/to/file.jpg", AsyncResponseTransformer.toBytes());

動態模式(Dynamic)

從請求 Payload 組裝 KnoluxS3OperationSpec,適合 REST API 或 Message Queue:

KnoluxS3OperationSpec spec = KnoluxS3OperationSpec.builder()
    .endpoint(message.getS3Endpoint())   // null 時 fallback 至 Properties
    .accessKey(message.getSecretId())
    .secretKey(message.getSecretKey())
    .bucket(message.getBucket())
    .key(message.getObjectKey())
    .build()
    .mergeDefaults(s3Properties);

s3Template.download(spec, AsyncResponseTransformer.toBytes());

進階模式(Advanced)

明確指定 KnoluxS3ConnectionDetails,適合需要精細控制連線的場景:

s3Template.upload("bucket", "key", body, customConnectionDetails);
See Also: